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

当前回答

这个问题已经为我解决了

我使用的是MacBook Air (M1),遇到了一个问题,因为我使用的是支持linux/amd64的映像,而我的系统架构是arm64。

因此,请确保根据您的设备运行兼容的映像。

其他回答

如果你正在使用Docker桌面,重新启动Docker对我来说是有效的。 故障处理→重启

对我来说,我发现我试图从错误的目录进行构建。

在我的例子中,我在context选项中的"."后面有一个额外的空格:

docker build -t myapp .[EXTRA_SPACE_HERE]

我通过在构建命令的开头添加sudo (Ubuntu)来解决这个问题。 例如:

sudo docker build --tag somename .

确保你的.dockerignore与你的文件不匹配。

有时使用.dockerignore的模式是向其添加通配符,并使用!filename语法将特定期望的文件排除到上下文中。例如:

*
!Cargo.toml
!Cargo.lock
!src
!setup.py
!README.md
!project
!requirements
__pycache__

如果您稍后尝试在Dockerfile中使用一个文件,它将匹配通配符,而不会出现在上下文中。向新文件添加异常或删除通配符来修复此问题。