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

Luc*_*sta 12 node.js docker angular

在步骤 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"}
Run Code Online (Sandbox Code Playgroud)

显示的错误是:

=> ERROR [4/6] COPY package.json .                                                                                0.0s
------
 > [4/6] COPY package.json .:
------
failed to compute cache key: "/package.json" not found: not found
Run Code Online (Sandbox Code Playgroud)

Viv*_*Dev 14

我遇到了类似的错误。

failed to compute cache key: "/package.json" not found: not found
Run Code Online (Sandbox Code Playgroud)

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

**/node_modules
README.md
package.json
package-lock.json
docker-compose.dev.yml
Run Code Online (Sandbox Code Playgroud)

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


小智 12

你可以试试:

COPY ["package*.json","./"]
Run Code Online (Sandbox Code Playgroud)


Azz*_*hem 6

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

    FROM node:14.17.3-alpine AS build
    WORKDIR /usr/src/app
    COPY **/package.json **/package-lock.json ./
    ...
Run Code Online (Sandbox Code Playgroud)