【问题标题】:Docker nodejs mongodbDocker nodejs mongodb
【发布时间】:2019-06-14 04:06:31
【问题描述】:

我将 docker 我的应用程序 js。我运行命令 docker-compose up。 但我有错误:app | /bin/sh: 1: [: “npm”,: 意外操作符。

Dockerfile

FROM node:latest 
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
RUN ["npm", "start" ]

docker-compose.yml

version: "2"
services:
app:
  container_name: app
  restart: always
  build: .
  ports:
    - "3000:3000"
  links:
    - mongo
mongo:
  container_name: mongo
  image: mongo
  volumes:
    - ./data:/data/db
  ports:
    - "27017:27017"

【问题讨论】:

    标签: node.js mongodb docker dockerfile


    【解决方案1】:

    仔细检查您的 Dockerfile。

    "npm"“npm” 不同,请注意" 的双引号。你应该 始终使用"(从键盘输入)而不是

    然后运行以下命令:

    docker-compose up --build
    

    【讨论】:

    • 我用CMD [ “npm“, “start“ ] 编辑我的Docker 文件并且我有同样的错误
    • 你应该删除Dockerfile中所有不必要的空格,试试这个Dockerfile(Ctrl + A你的文件并用这个替换)pastebin.com/raw/Dzu6KPYD然后运行docker-compose up --build
    【解决方案2】:

    您可以使用CMD 指令代替RUN

    改变这一行:

    RUN ["npm", "start"]
    

    ...到这个:

    CMD ["npm", "start"]
    

    CMD 指令在您的容器启动时触发。

    这里的文档: https://docs.docker.com/engine/reference/builder/#cmd

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 2019-07-23
      • 2019-05-27
      • 2021-02-09
      • 1970-01-01
      • 2017-10-13
      • 2018-10-30
      相关资源
      最近更新 更多