我试图为我的盖茨比应用程序构建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(大写D),但它们大多没有明确地告诉如何定制。

docker image build --tag any_image_tag --file any_file_name path_to_your_context_folder

我认为这个更好,我希望它能帮助到那些来这里的人。Any_file_name实际上是包含构建指令的任何文件名。其中的“dockerfile”是不需要的,但如果它与上下文文件夹不同,它有助于识别并给出完整的路径。Path_to_your_context_folder基本上是你的工作所在的文件夹,比如一个web应用程序。

例如,下面是我当前在COPY窗口中的测试。/app使用context文件夹作为。:

docker image build --tag nested_image --file C:\WorkSpace\myapp\dockerfiles\any_file_name C:\WorkSpace\myapp\contextfiles\

PS:对于同一个问题,这个主题确实有很多有趣的答案,但是是由许多奇异的原因引起的。我的问题只是一个显而易见的问题的旁注。

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

FROM --platform=linux/amd64 node:14

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

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

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

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

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