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

当前回答

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

sudo docker build --tag somename .

其他回答

对于docker桌面,这个问题通常通过添加-f选项来解决。 例如:让docker文件放在c:\Dockerfile.txt

您可以运行以下命令来构建映像

docker build -f "c:\Dockerfile.txt"

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

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

其他的答案都对我没用。在我的情况下,问题是我在CLI中有一些docker的权限问题,而不是修复它,我只是使用sudo。所以我修复了这些权限问题(在~/。Docker /buildx文件夹)和运行Docker没有sudo和它工作。

在我的例子中,我试图从我正在构建的Docker映像中的当前目录复制wp-content文件夹。像这样:

FROM wordpress:latest

# Copy wp-content
COPY ./wp-content/ ./var/www/html/wp-content/

但是,我注意到我有一个.dockerignore文件,它被明确告知忽略wp-content。

当我从.dockerignore中删除wp-content/时,它工作得很好。

可能不是OP的问题,但我在试图构建运行在Windows Linux子系统(WSL) (Debian WSL2)中的容器时遇到了这个问题,刚刚安装了Docker Compose,我所要做的就是关闭(Debian)终端并重新打开它,我的问题就解决了。