我正在尝试使用docker-compose部署应用程序,并且该应用程序位于主机的文件夹中(与docker-compose文件位于同一目录)。
我正在运行命令docker-compose up -d
,但是似乎未装入该卷,因为执行命令npm install
时会显示以下消息:
Step 3/4 : RUN npm install
---> Running in a09b1e8139ae
npm WARN saveError ENOENT: no such file or directory, open '/app/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/app/package.json'
npm WARN app No description
npm WARN app No repository field.
npm WARN app No README data
npm WARN app No license field.
之后,我的容器退出了。
我的文件:
docker-compose.yml
version: '3'
services:
github-app:
build:
context: ./docker
volumes:
# Place app files.
- ./:/app
ports:
- "3000:3000"
docker / Dockerfile
FROM node:10.15.1
WORKDIR /app
RUN npm install
CMD ["npm", "start"]
有人知道我在做什么错吗?
答案 0 :(得分:0)
除非我弄错了。将在挂载任何卷之前执行负责构建过程的docker
目录,因此在构建过程中,映像不会有任何名为package.json
的内容,因为它位于上下文目录之外。尝试将dockerfile
移动到您拥有docker-compose.yml
和package.json
的相同根目录,并使用
COPY . /app
在构建完成之前,将无法使用它取决于挂载的卷