如何更改构建上下文的 docker 源

how to change docker source of the context of the build

Dockerfile 是:

1
2
FROM nginx
COPY html /usr/share/nginx/html

Dockerfile 位于 pwd 目录(即 home/ubuntu/app),当使用以下命令时:

1
docker build -t mynginx .

我给出了一个错误:

复制失败:stat /var/lib/docker/tmp/docker-builder344/html:没有这样的文件或目录。

如何更改构建上下文的 docker 源?


docker build -t mynginx . 期望在当前目录中找到 Dockerfile。此外,Dockerfile 指令使用的相对路径将相对于当前目录。

您可以将构建上下文路径设置为不同的路径 docker build -t mynginx [some_folder_path]。 Docker 会在那里搜索 Dockerfile。您可以使用 -f 选项 docker build -f [path_to_dockerfile] -t mynginx [some_folder_path]

修改 Dockerfile 的路径


Docker 构建仅在 Dockerfile 文件上下文中查看文件,这意味着构建将从 Dockerfile 所在的位置复制 /home/ubuntu/app/

所以最好将你的 html/home/ubuntu/app 放在这个位置,因为 docker build 将上下文的 tar 发送到 docker 守护进程,因此建议保持上下文最小化。