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

其他回答

如果您正在使用任何在Dockerfile v0中不支持的新特性(如多个构建上下文),您需要在Dockerfile的开头指定Dockerfile版本

例如,在Dockerfile中,第一行是:

#syntax=码头工人/码头工人文件:1.4

如果你在Windows上使用Docker,那么确保Docker引擎被设置为与你想要构建的映像(Windows / Linux)匹配的模式。

我不记得我到底是在哪里读到这篇文章的,但如果您正在使用WSL2并收到这个错误,那么请删除WSL2主文件夹中的Docker配置文件,并尝试重新构建映像。

也就是说,如果你已经检查了你的文件名,并再次确认所有的命名都是正确的(Dockerfile, .dockerignore等)。

WSL2 Ubuntu:

rm ~/.docker/config.json

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

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