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

当前回答

确保你使用相同的平台,例如: 如果使用。构建第一个映像(my-custom-service)

FROM --platform=linux/amd64 node:14

然后你需要将——platform添加到其他使用第一个基映像的dockerfile中:

FROM --platform=linux/amd64 my-custom-service

其他回答

通过设置HTTP_PROYY和HTTP_PROXYS环境变量来指定代理服务器。

例子:

http_proxy=http://username:password@proxy.example.com:8080
https_proxy=http://username:password@proxy.example.com:8080

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

还有另一种可能性:当我试图用Windows 10服务器核心映像构建Dockerfile时,我在Windows 10上为WSL使用了基于linux的容器。

在系统托盘中,右键单击Docker Desktop并选择切换到Windows容器…

如果你看到了这个问题,它实际上并不是真正的问题。实际问题嵌套在错误日志的某个地方。要查看实际问题,您需要像这样运行构建命令:

DOCKER_BUILDKIT=0  docker build .

注意DOCKER_BUILDKIT=0。这将使构建工具包不隐藏嵌套错误。从那里你应该能够谷歌正确的解决方案。

这也会使构建在命令行中看起来不同,但不用担心。只需要查找错误。

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

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