forked from uumas/ansible-docker
75 lines
3.3 KiB
YAML
75 lines
3.3 KiB
YAML
---
|
|
|
|
- name: Create directories and put files in them
|
|
when:
|
|
- docker_mounts | length > 0
|
|
- (docker_volume_type == 'bind' and docker_mounts | selectattr('name', 'defined') | list | length > 0) or (docker_mounts | selectattr('template', 'defined') | list | length > 0)
|
|
block:
|
|
- name: Create directory /opt/{{ docker_service + '/' + docker_service_suffix }}
|
|
file:
|
|
path: "/opt/{{ docker_service }}/{{ docker_service_suffix }}"
|
|
state: directory
|
|
owner: "{{ user.uid | default(omit) }}"
|
|
group: "{{ user.group | default(omit) }}"
|
|
mode: 0755
|
|
when: docker_service_suffix is defined
|
|
|
|
- name: Set docker_mounts_dir
|
|
set_fact:
|
|
docker_mounts_dir: "/opt/{{ docker_service }}/{{ docker_service_suffix }}/mounts"
|
|
when: docker_service_suffix is defined
|
|
- name: Set docker_mounts_dir
|
|
set_fact:
|
|
docker_mounts_dir: "/opt/{{ docker_service }}/mounts"
|
|
when: docker_service_suffix is not defined
|
|
|
|
- name: Create directory {{ docker_mounts_dir }}
|
|
file:
|
|
path: "{{ docker_mounts_dir }}"
|
|
state: directory
|
|
owner: "{{ user.uid | default(omit) }}"
|
|
group: "{{ user.group | default(omit) }}"
|
|
mode: 0700
|
|
- name: Define mounts directory owner
|
|
set_fact:
|
|
mount_owner: "{{ user.uid if docker_host_user else image_user | default('') }}"
|
|
mount_group: "{{ user.group if docker_host_user else '' }}"
|
|
|
|
- name: "Create docker bind mount directories for {{ docker_service_name }}"
|
|
file:
|
|
path: "{{ docker_mounts_dir }}/{{ item.name }}"
|
|
state: directory
|
|
owner: "{{ mount_owner if (item.set_owner is not defined or item.set_owner) and mount_owner | length > 0 else omit }}"
|
|
group: "{{ mount_group if (item.set_group is not defined or item.set_group) and mount_group | length > 0 else omit }}"
|
|
when: item.name is defined
|
|
loop: "{{ docker_mounts }}"
|
|
- name: Set docker_volume_definition for named binds
|
|
set_fact:
|
|
docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_mounts_dir + '/' + item.name, 'target': item.path, 'type': 'bind'}] }}"
|
|
when: item.name is defined
|
|
loop: "{{ docker_mounts }}"
|
|
|
|
- name: Template docker template mounts for {{ docker_service_name }}
|
|
template:
|
|
src: "{{ item.template }}.j2"
|
|
dest: "{{ docker_mounts_dir }}/{{ item.template }}"
|
|
when: item.template is defined
|
|
loop: "{{ docker_mounts }}"
|
|
- name: Set docker_volume_definition for template mounts
|
|
set_fact:
|
|
docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_mounts_dir + '/' + item.template, 'target': item.path, 'type': 'bind', 'read_only': true}] }}"
|
|
when: item.template is defined
|
|
loop: "{{ docker_mounts }}"
|
|
|
|
- name: Set docker_volume_definition for named volumes
|
|
set_fact:
|
|
docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_service_name + '_' + item.name, 'target': item.path, 'type': 'volume'}] }}"
|
|
when: docker_volume_type == 'named' and item.name is defined
|
|
loop: "{{ docker_mounts }}"
|
|
|
|
- name: Set docker_volume_definition for src binds
|
|
set_fact:
|
|
docker_volume_definition: "{{ docker_volume_definition + [{'source': item.src, 'target': item.path, 'type': 'bind'}] }}"
|
|
when: item.src is defined
|
|
loop: "{{ docker_mounts }}"
|