我试图为我的盖茨比应用程序构建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"]
我在使用WSL2 Ubuntu时遇到了这个问题,我通过更改Dockerfile的权限来解决它。
当我在我的电脑上设置WSL2时,我直接将我的一些文件(包括Dockerfile)从Windows复制到Ubuntu根文件夹中,这显然导致文件权限为空:
---------- 1 user user 10M Jan 1 00:00 Dockerfile
为了解决这个问题,我运行chmod 644 Dockerfile:
-rw-r--r-- 1 user user 10M Jan 1 00:00 Dockerfile
在那之后,Docker能够构建图像而没有任何进一步的问题。
对我来说,以下是错误:
无法用前端dockerfile解决。v0: failed to create LLB definition: failed to do request: Head https://registry-1.docker.io/v2/library/postgres/manifests/13-alpine: net/http: TLS握手超时
我在Windows 10和Docker Desktop中使用WSL2,我在更新Docker Desktop到3.5版本后得到了这个问题。
我通过启用与其他发行版的WSL集成来解决这个问题。
启用它:
在Windows中打开Docker Desktop,进入设置→资源→WSL集成→启用与其他发行版的集成,并为您安装的Ubuntu应用程序启用它。