构建 Dockerfile 错误:没有这样的文件或目录,打开 '/rc-user-service/package.json'
Posted
技术标签:
【中文标题】构建 Dockerfile 错误:没有这样的文件或目录,打开 \'/rc-user-service/package.json\'【英文标题】:Building Dockerfile error: no such file or directory, open '/rc-user-service/package.json'构建 Dockerfile 错误:没有这样的文件或目录,打开 '/rc-user-service/package.json' 【发布时间】:2020-11-27 23:21:15 【问题描述】:我正在尝试为在 /rc-user-service 上运行的快速服务器编写一个 dockerfile。我想我正在创建一个名为 /rc-user-service 的目录,使其成为工作目录,复制所有文件(我尝试过包括和不包括 COPY 包*.json ./),安装它,公开它端口,然后运行它。 RUN npm install 后出现此错误:
npm WARN saveError ENOENT: no such file or directory, open '/rc-user-service/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 '/rc-user-service/package.json'
npm WARN rc-user-service No description
npm WARN rc-user-service No repository field.
npm WARN rc-user-service No README data
npm WARN rc-user-service No license field.
我尝试将 Dockefile 放在服务器内部和服务器所在的目录中。后来我在 COPY package*.json 下收到此错误:COPY failed: no source files were specified。
Dockerfile:
FROM node:12.18
RUN mkdir -p /rc-user-service
WORKDIR /rc-user-service
COPY package*.json ./
COPY . .
RUN npm install
EXPOSE 3003
CMD ["npm", "run", "dev"]
感谢您的帮助!
【问题讨论】:
【参考方案1】:我想我明白了。如果我在调用时将 Dockerfile 放在服务器的目录中(而不是在服务器中):
COPY package*.json ./
它是在包含 Dockerfile 的目录中寻找它,而不是在服务器本身。所以:
COPY server/package*.json ./
COPY server/. .
构建没有问题,当我运行映像时,服务器启动。
【讨论】:
以上是关于构建 Dockerfile 错误:没有这样的文件或目录,打开 '/rc-user-service/package.json'的主要内容,如果未能解决你的问题,请参考以下文章
Dotnet:Dockerfile 没有这样的文件或目录 Blazor
为啥 docker-compose build 没有给我这样的文件或目录错误消息