使用containers.podman.podman_image构建镜像返回ok但未生成
问题排查:podman_image模块未触发镜像构建
从debug结果可以看出,Ansible仅执行了镜像列表查询和检查操作,没有触发构建命令,因此changed为false,未生成新镜像。以下是具体排查方向:
验证构建上下文路径与文件
确认{{ srcdir }}变量指向的路径存在,且路径下包含Dockerfile或Containerfile(podman默认优先查找Containerfile,其次是Dockerfile)。可以手动执行ls {{ srcdir }}确认文件存在。检查目标镜像是否已存在且无变更
模块会对比现有镜像与构建上下文的哈希值,若判断镜像已是最新状态,则不会触发构建。可以手动删除现有镜像:podman rmi ldapserver:latest之后重新运行playbook,观察是否触发构建操作。
强制触发重新构建
即使镜像存在,也可以通过添加force_recreate: yes参数强制模块重新构建镜像,修改后的任务如下:- name: Build a Docker formatted image for the ldapserver containers.podman.podman_image: name: ldapserver path: "{{ srcdir }}" build: format: docker cache: no force_rm: yes force_recreate: yes register: results指定Dockerfile名称(若非默认)
如果你的构建文件不是默认的Dockerfile或Containerfile,需要在build参数中明确指定路径:build: format: docker cache: no force_rm: yes dockerfile: Dockerfile.ldap # 替换为你的实际文件名查看详细日志
运行playbook时添加-vvv参数,获取模块的详细执行日志,日志中会明确说明未触发构建的原因(如“镜像已存在且无变更”)。
内容的提问来源于stack exchange,提问作者dnraikes
相关产品推荐
相关产品推荐

