【问题标题】:docker-compose: failed to solve: rpc error: code = Unknown desc = failed to compute cache keydocker-compose:未能解决:rpc 错误:代码 = Unknown desc = 无法计算缓存键
【发布时间】:2021-09-30 09:26:28
【问题描述】:

当我使用docker builddocker run 运行我的dockerfile 时,它​​运行良好。但是当我创建一个docker-compose.yml 文件来连接 mongoDB 时,我得到了一个错误。

错误:failed to solve: rpc error: code = Unknown desc = failed to compute cache key: failed to walk /var/lib/docker/tmp/buildkit-mount285447202/backend: lstat /var/lib/docker/tmp/buildkit-mount285447202/backend: no such file or directory

这是我的 docker-compose 代码:

version: "3"
services:   
  backend: 
    build: 
      context: ./docker
      dockerfile: Dockerfile.backend
    container_name: backend
    ports: 
      - '8081:8081'
    links:  
      - mongodb
  mongodb:
    container_name: mongodb
    image: mongo
    ports:
      - '27017:27017'

这是我的 dockerfile 代码:

FROM node:14-alpine AS builder
WORKDIR /app
COPY backend/package.json backend/package-lock.json ./
RUN npm install

COPY backend/src/ ./src
COPY backend/.env ./
COPY backend/.babelrc ./
RUN mkdir -p build/src
RUN npm run build

FROM node:alpine AS runner
WORKDIR /app

RUN apk add --no-cache \
      chromium \
      nss \
      freetype \
      harfbuzz \
      ca-certificates \
      ttf-freefont

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
    PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

RUN npm install puppeteer@10.0.0

RUN addgroup -S pptruser && adduser -S -g pptruser pptruser \
    && mkdir -p /home/pptruser/Downloads /app \
    && chown -R pptruser:pptruser /home/pptruser \
    && chown -R pptruser:pptruser /app

# USER pptruser
USER root

COPY --from=builder /app/package.json ./
COPY --from=builder /app/package-lock.json ./
COPY --from=builder /app/.env ./
COPY --from=builder /app/build ./build
COPY --from=builder /app/node_modules ./node_modules

EXPOSE 8081

CMD ["node", "build/src/index.js"]

我在以下位置遇到错误:

=> ERROR [builder 3/9] COPY backend/package.json backend/package-lock.json ./                                   0.0s 
 => CACHED [builder 4/9] RUN npm install                                                                         0.0s 
 => ERROR [builder 5/9] COPY backend/src/ ./src                                                                  0.0s 
 => ERROR [builder 6/9] COPY backend/.env ./                                                                     0.0s 
 => ERROR [builder 7/9] COPY backend/.babelrc ./                                                                 0.0s 

我的目录:

|-docker-compose.yml
|-backend
| |-src
| |-package.json
| |-package-lock.json 
| |-build
| |-...
|-docker
| |-Dockerfile.backend
| |-Dockerfile.frontend
|....

【问题讨论】:

    标签: node.js docker docker-compose


    【解决方案1】:

    这通常发生在Dockerfile 找不到文件夹时,例如

    Dockerfile:

    FROM alpine:3.8
    COPY backend /tmp
    

    执行:

    $ docker build .
    Sending build context to Docker daemon  2.048kB
    Step 1/2 : FROM alpine:3.8
     ---> c8bccc0af957
    Step 2/2 : COPY backend /tmp
    COPY failed: stat /var/lib/docker/tmp/docker-builder736780062/backend: no such file or directory
    

    确保context 文件夹(这里是docker)拥有backend 文件夹。

    对你来说,正确的做法应该是:

    version: "3"
    services:
      backend:
        build:
          context: .
          dockerfile: docker/Dockerfile.backend
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-18
      • 2021-09-08
      • 1970-01-01
      • 2019-09-25
      • 2021-05-28
      • 2023-01-03
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多