在步骤 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
我遇到了类似的错误。
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 文件,因此会出现错误。 我这边犯了一个愚蠢的错误,希望这对某人有帮助。
你可以尝试:
COPY ["package*.json","./"]
当我在同一个文件中设置 Dockerfile 和 package.json 时,我遇到了同样的错误, 对我来说,这是通过将“**/”添加到 json 文件的路径来解决的,如下所示
FROM node:14.17.3-alpine AS build
WORKDIR /usr/src/app
COPY **/package.json **/package-lock.json ./
...
检查package.json的路径,注意package.json相对于dockerfile的路径
对我来说,
package-lock.json
是一个死符号链接,指向一个不存在的文件。当构建器解析符号链接时,无法计算哈希值,因为该文件不存在。更新符号链接以引用正确的文件解决了问题
检查一下你的 dockerignore 文件,我在 dockerignore 文件中添加了
package*.json
,这就是为什么它找不到该文件。