Add service role
This commit is contained in:
71
roles/service/tasks/image.yml
Normal file
71
roles/service/tasks/image.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
- name: Image build
|
||||
when: dockerfile_needed
|
||||
block:
|
||||
- name: Set docker_build_directory variable
|
||||
set_fact:
|
||||
docker_build_directory: /opt/{{ docker_namespace }}/build
|
||||
|
||||
- name: Create container build directory
|
||||
file:
|
||||
path: "{{ docker_build_directory }}"
|
||||
state: directory
|
||||
|
||||
- name: Put dockerfile in place
|
||||
template:
|
||||
src: Dockerfile.j2
|
||||
dest: "{{ docker_build_directory }}/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: "{{ docker_build_directory }}"
|
||||
register: built_image
|
||||
changed_when:
|
||||
- not ansible_check_mode
|
||||
- built_image.changed
|
||||
|
||||
- name: Pull container image for {{ docker_service_name }}
|
||||
docker_image:
|
||||
name: "{{ docker_image }}"
|
||||
source: pull
|
||||
force_source: true
|
||||
register: pulled_image
|
||||
when: not dockerfile_needed
|
||||
changed_when:
|
||||
- not ansible_check_mode
|
||||
- pulled_image.changed
|
||||
|
||||
- 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 | length > 0 else docker_image }}"
|
||||
register: existing_image
|
||||
|
||||
- name: Set check mode container_image variable
|
||||
set_fact:
|
||||
container_image: "{{ existing_image.images[0] }}"
|
||||
when: existing_image.images | length > 0
|
||||
|
||||
- name: Set image user variable
|
||||
set_fact:
|
||||
image_user: "{{ container_image.Config.User }}"
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
- container_image.Config.User | int
|
||||
Reference in New Issue
Block a user