我正在docker中做一个教程,并尝试从docker复制图像,并在我的本地文件中引用index.hmtl文件, vinnyx05 -> 是我在 docker 的登录名,我正在运行 docker 桌面。 在使用 Windows 11 时。 代码是:
PS C:\html> docker build -t vinnyx5/nginx-imersao13:latest .
[+] Building 0.2s (6/6) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 101B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/nginx:latest 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [1/2] FROM docker.io/library/nginx:latest 0.0s
=> ERROR [2/2] COPY html/index.html /usr/share/nginx/html/ 0.0s
------
> [2/2] COPY html/index.html /usr/share/nginx/html/:
------
Dockerfile:3
--------------------
1 | FROM nginx:latest
2 |
3 | >>> COPY html/index.html /usr/share/nginx/html/
--------------------
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref ccf5a995-3d05-4517-a1ee-20291664f134::ljszgt44a3wte8c2sal6f54p2: failed to walk /var/lib/docker/tmp/buildkit-mount2559770106/html: lstat /var/lib/docker/tmp/buildkit-mount2559770106/html: no such file or directory
我不知道如何解决这个问题,请帮忙吗? 谢谢=)
我正在尝试复制图像,并在本地编辑index.html
确保您正在基于 Linux 的终端(如 WSL)上运行。这似乎是一个“Windows”问题。
Docker 找不到文件
html/index.html
。
也许,根据您的文件夹结构,您应该像这样复制文件:
COPY ./html/index.html /usr/share/nginx/html
您正在从 html 文件夹内部构建:
PS C:\html> docker build -t vinnyx5/nginx-imersao13:latest .
该命令中的构建上下文是
.
或当前目录。
然后,您尝试使用以下命令将文件
html/index.html
从该上下文复制到图像:
COPY html/index.html /usr/share/nginx/html/
为此,文件
C:\html\html\index.html
需要存在(注意路径中的双 html
)。
要解决此问题,请将您的上下文更改为更高的目录(不建议,因为您正在
c:\
下工作,并且您不想将整个 C 驱动器复制到经常位于 C 驱动器上的 docker temp 目录) )。或者最好修复 COPY
命令以引用您的上下文中存在的文件,例如:
COPY index.html /usr/share/nginx/html/
仔细检查您的 .dockerignore 文件,如果存在,请确保错误消息中提到的文件不存在于该文件中。
确保在构建图像时使用正确的
context
文件夹,尤其是在 docker-compose 的情况下。