创建镜像时package.json出错如何解决?

问题描述 投票:0回答:6

在步骤 4/6 中,当我尝试在 Docker 中创建此映像时显示错误:

FROM node:latest

RUN mkdir -p /app/src

WORKDIR /app/src

COPY package.json .

RUN npm install
#IT WILL COPY THE ENTIRE DIR FORECAST TO /app/src INSIDE DOCKER
COPY . .

EXPOSE 3000

CMD {"npm",  "start"}

显示的错误是:

=> ERROR [4/6] COPY package.json .                                                                                0.0s
------
 > [4/6] COPY package.json .:
------
failed to compute cache key: "/package.json" not found: not found
node.js angular docker
6个回答
17
投票

我遇到了类似的错误。

failed to compute cache key: "/package.json" not found: not found

对我来说,我包含了一个 .dockerignore 文件并放置了除 node_modules 之外的许多其他条目

**/node_modules
README.md
package.json
package-lock.json
docker-compose.dev.yml

很自然,它不会复制所需的 package.json 文件,因此会出现错误。 我这边犯了一个愚蠢的错误,希望这对某人有帮助。


12
投票

你可以尝试:

COPY ["package*.json","./"]

7
投票

当我在同一个文件中设置 Dockerfile 和 package.json 时,我遇到了同样的错误, 对我来说,这是通过将“**/”添加到 json 文件的路径来解决的,如下所示

    FROM node:14.17.3-alpine AS build
    WORKDIR /usr/src/app
    COPY **/package.json **/package-lock.json ./
    ...

4
投票

检查package.json的路径,注意package.json相对于dockerfile的路径


0
投票

对我来说,

package-lock.json
是一个死符号链接,指向一个不存在的文件。当构建器解析符号链接时,无法计算哈希值,因为该文件不存在。更新符号链接以引用正确的文件解决了问题


0
投票

检查一下你的 dockerignore 文件,我在 dockerignore 文件中添加了

package*.json
,这就是为什么它找不到该文件。

© www.soinside.com 2019 - 2024. All rights reserved.