Podman远程构建为何仅用远程Dockerfile?能否使用本地Dockerfile构建
问题解答
这是Podman远程构建的正常行为吗?
是的,这属于Podman远程模式下的默认行为。当Podman连接到远程daemon时,所有路径参数(包括Dockerfile路径、构建上下文)默认都会解析为远程服务器上的路径,而非本地路径。你执行-f .时,Podman会在远程daemon的当前工作目录(通常是远程用户的主目录)中查找默认的Dockerfile,这就是为什么会用到远程服务器主目录里的文件。
如何让Podman使用本地Dockerfile进行远程构建?
要让远程构建使用本地的Dockerfile,核心是让Podman把本地的构建上下文(包含Dockerfile)打包发送到远程daemon,具体可通过以下方式实现:
正确指定构建命令参数
确保命令中的构建上下文指向本地当前目录,同时明确指定本地的Dockerfile路径:podman.exe build --tag mytest:test -f ./Dockerfile .这里的
.代表本地的构建上下文,Podman会将该目录下的所有文件(包括Dockerfile)打包上传到远程服务器,之后在远程基于这个上传的上下文执行构建。使用绝对路径指定本地Dockerfile(可选)
如果你的Dockerfile不在当前工作目录,可直接用本地绝对路径指定:podman.exe build --tag mytest:test -f C:/projects/myapp/Dockerfile C:/projects/myapp第二个路径是本地的构建上下文目录,同样会被完整上传到远程。
确认当前Podman连接模式
若你不需要远程构建,可检查当前连接的daemon是否为远程:podman system connection ls如果默认连接是远程,可以切换回本地连接:
podman system connection default <本地连接名称>
内容的提问来源于stack exchange,提问作者Kiran Shankar
相关产品推荐
相关产品推荐

