我试图为我的盖茨比应用程序构建Docker映像。每当我运行命令docker构建。-t gatsbyapp,它会给出一个错误:

failed to solve with frontend dockerfile.v0: failed to build LLB:
failed to compute cache key: "/.env" not found: not found

同时我的Dockerfile如下所示:

FROM node:13

WORKDIR /app

COPY package.json .

RUN yarn global add gatsby-cli

RUN yarn install

COPY gatsby-config.js .

COPY .env .

EXPOSE 8000

CMD ["gatsby","develop","-H","0.0.0.0"]

当前回答

由于VPN连接,我遇到了这个问题。

我所要做的就是在Docker Desktop代理部分设置一个手动代理:

其他回答

我所需要做的只是在构建中添加—no-cache作为参数。

对我来说,以下是错误:

无法用前端dockerfile解决。v0: failed to create LLB definition: failed to do request: Head https://registry-1.docker.io/v2/library/postgres/manifests/13-alpine: net/http: TLS握手超时

我在Windows 10和Docker Desktop中使用WSL2,我在更新Docker Desktop到3.5版本后得到了这个问题。

我通过启用与其他发行版的WSL集成来解决这个问题。

启用它:

在Windows中打开Docker Desktop,进入设置→资源→WSL集成→启用与其他发行版的集成,并为您安装的Ubuntu应用程序启用它。

对我来说

我打开Docker桌面->打开设置->Docker引擎->

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": false
  }
}

这里我的buildkit的默认值是true ->我更改为false并重新启动docker引擎

这对我很有用

确保你的.dockerignore与你的文件不匹配。

有时使用.dockerignore的模式是向其添加通配符,并使用!filename语法将特定期望的文件排除到上下文中。例如:

*
!Cargo.toml
!Cargo.lock
!src
!setup.py
!README.md
!project
!requirements
__pycache__

如果您稍后尝试在Dockerfile中使用一个文件,它将匹配通配符,而不会出现在上下文中。向新文件添加异常或删除通配符来修复此问题。

如果你有一个类似的项目结构,

├── docker
│   │
│   ├── app
│   │   └── Dockerfile
│   └── mlflow
│       └── Dockerfile
│
└── docker-compose.yml

你可能没有在docker-compose.yml中指定build: context:

version: '3'

services:

  mlflow:
    build:
      context: ./
      dockerfile: ./docker/mlflow/Dockerfile
    container_name: ml_app_mlflow
    volumes:
      - ./db:/db
    ports:
      - 5000:5000