我试图为我的盖茨比应用程序构建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(大写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:对于同一个问题,这个主题确实有很多有趣的答案,但是是由许多奇异的原因引起的。我的问题只是一个显而易见的问题的旁注。