forked from uumas/ansible-docker
56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
---
|
|
|
|
- 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
|