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.yml
的command
行,只留下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 ..