一些用户 报告 说在 MacOS 和 Windows 上运行 podman build 命令时速度很慢。这是因为在这些操作系统上使用 Podman 时,它实际上利用了一个远程客户端,通过 podman REST API 服务与 Linux 系统通信来运行容器。
build 命令使用一个所谓的上下文目录,通常是包含 Containerfile/Dockerfile 的项目目录。但是,由于实际构建是在 Linux 系统上进行的,并且构建允许将文件或目录添加到新镜像中,Podman 需要将完整的上下文目录复制到服务器。这是通过在客户端上将目录打包并发送到服务器来完成的,服务器随后会再次解压缩并执行构建。当上下文目录很大时,这可能是一个昂贵的操作,而且还严重依赖于底层硬件,例如磁盘速度。
如何解决此问题
解决此问题有两种可能的方法
- 使用 .containerignore/.dockerignore 文件来排除不想复制到镜像中的文件/目录。
- 如果使用 Podman machine 设置,可以使用 `podman machine ssh` 命令进入 Linux 系统并在那里执行构建。这只在上下文目录位于挂载到机器上的卷上时才有效。默认情况下,$HOME 被挂载,因此在大多数情况下应该可以正常工作。
发表评论