在docker/my-project-node/文件夹中的Dockerfile中,有RUN npm i --legacy-peer-deps --only=production --no-optional。
我想在本地运行码头建设,看看一切是否正常。
当我运行docker build -t my-project-image .时,我得到这个npm错误:
#9 0.913 npm ERR! code ENOENT
#9 0.913 npm ERR! syscall open
#9 0.914 npm ERR! path /app/package.json
#9 0.914 npm ERR! errno -2
#9 0.916 npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
#9 0.917 npm ERR! enoent This is related to npm not being able to find a file.
#9 0.917 npm ERR! enoentDockerfile:
FROM node:16-alpine
RUN apk update && apk add --no-cache ca-certificates bash
WORKDIR '/app'
COPY . .
RUN npm i --legacy-peer-deps --only=production --no-optional
CMD ["npm","run", "start:prod"] 我的码头文件怎么了?
发布于 2022-06-17 08:01:42
您将错误的build context传递给码头。
build context是Docker开始工作的目录,所有COPY命令都从这个路径查找文件。
有两种方法可以正确地指定这一点:
docker build -t my-web-app -f docker/my-project-node/Dockerfile在
docker build -t my-web-app ../.. (您的根目录位于两个文件夹上)最后,请看docker-compose。所有这些烦人的停靠命令都可以很好地用如下所示的坞-撰写文件来表示:
# docker-compose.yaml placed at root of the project
version: '3'
services:
web:
container_name: "example1"
build:
context: .
dockerfile: docker/my-project-node/Dockerfile
ports:
- "8000:8000"创建文件后,只需运行docker-compose up -d以创建和运行容器,并运行docker-compose down以关闭和删除容器:)
https://stackoverflow.com/questions/72650546
复制相似问题