docker组成不找我的index.js

我遵循本指南,并使用我的低docker知识来启动和运行开发环境。 我碰到了一个我无法解决的问题。 这是我docker-compose.yml

 version: '2' services: redis: image: redis:3.2 mongo: image: mongo:3.2 app: build: . ports: - '3000:3000' command: './node_modules/.bin/nodemon ./index.js' environment: NODE_ENV: development volumes: - .:/home/app/cardcreator - /home/app/cardcreator/node_modules depends_on: - redis - mongo links: - redis - mongo 

这是我的Dockerfile

 FROM node:6.3.1 RUN useradd --user-group --create-home --shell /bin/false app ENV HOME=/home/app COPY package.json npm-shrinkwrap.json $HOME/cardcreator/ RUN chown -R app:app $HOME/* USER app WORKDIR $HOME/cardcreator RUN npm install USER root COPY . $HOME/cardcreator/ RUN chown -R app:app $HOME/* USER app CMD ["node", "index.js"] 

当我尝试通过docker-compose up启动应用程序docker-compose up ,出现错误

 app_1 | Usage: nodemon [nodemon options] [script.js] [args] app_1 | See "nodemon --help" for more. 

然后我删除了我docker-compose.ymlcommand行,只留下node index.js启动。 我得到一个错误,说不能findindex.js

该文件在我的项目文件夹,它那里,它有内容。 我不明白为什么这个设置不起作用,我做了类似的尾巴设置,它工作正常。

有谁能告诉我我在做什么错在这里?

无论你在这里撰写的文件如何:

 - .:/home/app/cardcreator 

打算在$HOME/cardcreator/在你的Dockerfile中build立的任何东西之上。

所以基本上你似乎有冲突的数量 – 这是一个操作问题的顺序 – 构build将首先发生,并在容器运行后发生卷安装,因此您的容器将不再有权访问构build的文件Dockerfile。

你可以尝试使用

 docker exec -it app_1 bash 

进入容器,试图执行

 node index.js 

手动命令,看看发生了什么事情。 不是100%确定如果'节点'泊坞窗图像安装了bash ..