【发布时间】:2021-12-14 19:12:22
【问题描述】:
我有这个项目的结构:
- project
-- apps
--- microservice-one
---- Dockerfile
-- package.json
-- docker-compose.yml
这是我来自microservice-one的Dockerfile:
FROM node:12.13-alpine As development
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "dist/main"]
和 docker-compose.yml
services:
microservice-one:
container_name: microservice-one
build:
context: ./apps/microservice-one
dockerfile: Dockerfile
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
ports:
- 3000:3000
expose:
- '3000'
command: npm run start
为什么在运行docker-compose build 之后,我的控制台会抛出这个错误:
#12 0.725 npm ERR! code ENOENT
#12 0.726 npm ERR! syscall open
#12 0.728 npm ERR! path /usr/src/app/package.json
#12 0.729 npm ERR! errno -2
#12 0.734 npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json'
我认为问题出在我的 Dockerfile 和 COPY package*.json ./ 上,是不是我的 Dockerfile 看不到 package.json?
感谢您的帮助!
【问题讨论】:
-
package.json 不在 /apps/microservice-one 中,而是高一级,因此 docker 找不到它。此外,您的第二卷看起来无效。但是在构建时,这不会影响您。但是您将在下一步中解决该问题。
标签: node.js docker npm docker-compose