我试图为我的盖茨比应用程序构建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"]

当前回答

在我的例子中,我和dockerfile本身不在同一个目录中。

其他回答

在我的例子中,我有两张图片,我是从同一张图片复制的。我的具体错误是:failed to solve:未能解决与前端dockerfile。v0:创建LLB定义失败:在阶段:kubexit上检测到循环依赖

FROM karlkfi/kubexit:latest AS kubexit
COPY --from=kubexit /bin/kubexit /bin/

FROM maven:3.8-jdk-11-slim AS build

所以这是一个循环引用。解决办法:

FROM karlkfi/kubexit:latest AS kubexit

FROM maven:3.8-jdk-11-slim AS build
COPY --from=kubexit /bin/kubexit /bin/

我在使用visual studio 2022时也遇到了同样的问题。问题是visual studio 2022的逻辑目录结构与物理目录结构不同。因此,该文件在visual studio 2022展示的位置上并不存在。

一旦指定了正确的位置,它就可以正常工作。

我不需要改变DOCKER_BUILDKIT=0或任何设置。但使用-f选项指定docker文件。

在我的例子中,我试图从我正在构建的Docker映像中的当前目录复制wp-content文件夹。像这样:

FROM wordpress:latest

# Copy wp-content
COPY ./wp-content/ ./var/www/html/wp-content/

但是,我注意到我有一个.dockerignore文件,它被明确告知忽略wp-content。

当我从.dockerignore中删除wp-content/时,它工作得很好。

如果你在Windows中使用Docker,你需要在设置中禁用Docker引擎中的buildkit。它适用于我,解决了我的错误

将buildkit选项设置为false。

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

其他的答案都对我没用。在我的情况下,问题是我在CLI中有一些docker的权限问题,而不是修复它,我只是使用sudo。所以我修复了这些权限问题(在~/。Docker /buildx文件夹)和运行Docker没有sudo和它工作。