--- - name: Image build when: dockerfile is defined and dockerfile | length > 0 block: - name: Put dockerfile in place template: src: Dockerfile.j2 dest: "/opt/{{ docker_service }}/Dockerfile" mode: 0644 - name: Build docker image for {{ docker_service }} docker_image: name: "local_{{ docker_service }}" source: build force_source: true build: pull: true path: "/opt/{{ docker_service }}" register: built_image - name: Pull container image for {{ docker_service }} docker_image: name: "{{ docker_image }}" source: pull force_source: true register: pulled_image when: dockerfile is not defined or dockerfile | length == 0 - name: Set container_image variable set_fact: container_image: "{{ item.image }}" when: item.skipped is not defined or not item.skipped loop: - "{{ built_image }}" - "{{ pulled_image }}" - name: Check mode image info when: ansible_check_mode block: - name: Get docker image info for check mode docker_image_info: name: "{{ ('local_' + docker_service) if dockerfile is defined and dockerfile | length > 0 else docker_image }}" register: existing_image - name: Set check nmode container_image variable set_fact: container_image: "{{ existing_image.images[0] }}" - name: Set image user variable set_fact: image_user: "{{ container_image.Config.User }}" when: - not ansible_check_mode - container_image.Config.User | length > 0