docker-compose, failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/app/package.json" not found: not found
docker-compose, failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/app/package.json" not found: not found
我遇到路径 docker-compose
的问题,当我尝试仅使用 docker build
构建项目时,效果很好,但我不能使用 docker build
,我必须使用docker-compose
。当我使用 docker-compose
它 returns 2 错误在步骤 3/5 => ERROR [3/5] COPY /app/package.json .
和步骤 5/5 => ERROR [5/5] COPY /app .
:
PS C:\Users\mamba\Desktop\project-practice> docker-compose -f docker/docker-compose.yml up -d
[+] Building 1.4s (9/9) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 31B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/node:latest 1.0s
=> [1/5] FROM docker.io/library/node@sha256:c3356b2b11ad643852a321308c15d70ca2bc106e40d3ffe7a4879d3588a9d479 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 2B 0.0s
=> CACHED [2/5] WORKDIR /app 0.0s
=> ERROR [3/5] COPY /app/package.json . 0.0s
=> CACHED [4/5] RUN npm install 0.0s
=> ERROR [5/5] COPY /app . 0.0s
------
> [3/5] COPY /app/package.json .:
------
------
> [5/5] COPY /app .:
------
failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/app/package.json" not found: not found
这是我的项目结构
http://skrinshoter.ru/s/080721/upY64zwf
这是我的 Dockerfile
FROM node
WORKDIR /app
COPY /app/package.json .
RUN npm install
COPY /app .
EXPOSE 3000
CMD ["npm", "start"]
这是我的docker-compose.yml
version: "3.8"
services:
react-app:
working_dir: /app
build:
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- ./app/src:/app/src
environment:
- CHOKIDAR_USEPOLLING=true
# env_file:
# - ./docker/.env
如果我将文件结构中的 docker-compose.yml 移动到 project-practice
,它工作得很好,它构建并且服务器启动,但我必须保持文件夹结构和这样的文件。
|-project-practice
|-app
| |...
|-docker
|...
因此,如果您的 yml 是嵌套的,您需要使用 ../app/src:/app/src
而不是 ./app/src:/app/src
,因为它是 yml 的相对位置。
看起来你安装的卷有误。
从以下位置更改 docker-compose 配置:
build:
dockerfile: Dockerfile
volumes:
- ./app/src:/app/src
您只安装了 SRC 文件夹,但您需要它之外的文件。您还需要将上下文添加到 docker 文件
至:
build:
context: ../
dockerfile: /docker/Dockerfile
volumes:
- ../app:/app
路径应该相对于 docker-compose 文件位置。
另外需要修改Dockerfile:
FROM node
WORKDIR /app
COPY /app/package.json .
RUN npm install
COPY /app .
EXPOSE 3000
CMD ["npm", "start"]
我遇到路径 docker-compose
的问题,当我尝试仅使用 docker build
构建项目时,效果很好,但我不能使用 docker build
,我必须使用docker-compose
。当我使用 docker-compose
它 returns 2 错误在步骤 3/5 => ERROR [3/5] COPY /app/package.json .
和步骤 5/5 => ERROR [5/5] COPY /app .
:
PS C:\Users\mamba\Desktop\project-practice> docker-compose -f docker/docker-compose.yml up -d
[+] Building 1.4s (9/9) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 31B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/node:latest 1.0s
=> [1/5] FROM docker.io/library/node@sha256:c3356b2b11ad643852a321308c15d70ca2bc106e40d3ffe7a4879d3588a9d479 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 2B 0.0s
=> CACHED [2/5] WORKDIR /app 0.0s
=> ERROR [3/5] COPY /app/package.json . 0.0s
=> CACHED [4/5] RUN npm install 0.0s
=> ERROR [5/5] COPY /app . 0.0s
------
> [3/5] COPY /app/package.json .:
------
------
> [5/5] COPY /app .:
------
failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/app/package.json" not found: not found
这是我的项目结构 http://skrinshoter.ru/s/080721/upY64zwf
这是我的 Dockerfile
FROM node
WORKDIR /app
COPY /app/package.json .
RUN npm install
COPY /app .
EXPOSE 3000
CMD ["npm", "start"]
这是我的docker-compose.yml
version: "3.8"
services:
react-app:
working_dir: /app
build:
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- ./app/src:/app/src
environment:
- CHOKIDAR_USEPOLLING=true
# env_file:
# - ./docker/.env
如果我将文件结构中的 docker-compose.yml 移动到 project-practice
,它工作得很好,它构建并且服务器启动,但我必须保持文件夹结构和这样的文件。
|-project-practice
|-app
| |...
|-docker
|...
因此,如果您的 yml 是嵌套的,您需要使用 ../app/src:/app/src
而不是 ./app/src:/app/src
,因为它是 yml 的相对位置。
看起来你安装的卷有误。 从以下位置更改 docker-compose 配置:
build:
dockerfile: Dockerfile
volumes:
- ./app/src:/app/src
您只安装了 SRC 文件夹,但您需要它之外的文件。您还需要将上下文添加到 docker 文件
至:
build:
context: ../
dockerfile: /docker/Dockerfile
volumes:
- ../app:/app
路径应该相对于 docker-compose 文件位置。
另外需要修改Dockerfile:
FROM node
WORKDIR /app
COPY /app/package.json .
RUN npm install
COPY /app .
EXPOSE 3000
CMD ["npm", "start"]