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

当前回答

我在Mac上升级到最新的Docker Desktop版本后遇到了这个问题。通过对这个问题的评论解决了。

解决方案:不要使用buildkit,它适合我。

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

其他回答

如果您正在使用Windows Subsystem for Linux (WSL),请在启动窗口之前检查Docker是否正在运行。如果您在启动窗口后启动了Docker。那么重启你的终端。如果你的文件是正确的,它应该可以工作。

可能不是OP的问题,但我在试图构建运行在Windows Linux子系统(WSL) (Debian WSL2)中的容器时遇到了这个问题,刚刚安装了Docker Compose,我所要做的就是关闭(Debian)终端并重新打开它,我的问题就解决了。

在我看来,这个错误有很多原因。

在我的例子中,有两个错误:(1)在Dockerfile中:# syntax = *****行拼写错误(2)在docker_compose文件中。Yaml, web / build: *行指向错误的目录。

通过阅读Dockerfile文档和休息来重新集中注意力,我得到了帮助。

我在使用WSL2 Ubuntu时遇到了这个问题,我通过更改Dockerfile的权限来解决它。

当我在我的电脑上设置WSL2时,我直接将我的一些文件(包括Dockerfile)从Windows复制到Ubuntu根文件夹中,这显然导致文件权限为空:

---------- 1 user user 10M Jan 1 00:00 Dockerfile

为了解决这个问题,我运行chmod 644 Dockerfile:

-rw-r--r-- 1 user user 10M Jan 1 00:00 Dockerfile

在那之后,Docker能够构建图像而没有任何进一步的问题。

如果你在Mac或Windows上使用Docker Desktop,你可能也必须在你的“Docker引擎”JSON配置中禁用它。

Docker Desktop→Settings→Docker Engine→将“features”:{buildkit: true}改为“features”:{buildkit: false}。