docker-compose,无法解决:rpc错误:code = Unknown desc =无法计算缓存键:未找到“/app/package.json”:未找到

nom7f22z  于 2023-06-29  发布在  Docker
关注(0)|答案(3)|浏览(454)

我有一个问题的途径docker-compose,当我尝试建立项目只有docker build,它的工作很好,但我不能使用docker build,我必须使用docker-compose。当我使用docker-compose时,它在第3/5步=> ERROR [3/5] COPY /app/package.json .和第5/5步=> ERROR [5/5] COPY /app .返回2个ERROR:

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
   |...
gzszwxb4

gzszwxb41#

看起来你安装卷错误。从以下位置更改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"]
new9mtju

new9mtju2#

所以如果你的yml是嵌套的,你需要使用../app/src:/app/src而不是./app/src:/app/src,因为它是yml的相对位置。

ccgok5k5

ccgok5k53#

虽然已经回答了,但对于任何在不同用例中得到此错误的人来说,此错误对应于DockerFile而不是docker-compose。检查日志以查看失败的地方。

相关问题