构建 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 没有给我这样的文件或目录错误消息

Dockerrun.aws.json:没有这样的文件或目录

模拟器clang上的Xcode构建错误:错误:没有这样的文件或目录:'__entitlements'

Xcode 错误:构建时没有这样的文件或目录

为 pageserror 构建静态 HTML:错误:ENOENT:没有这样的文件或目录