container: fix legacy docker_volumes compatibility, add missing arguments to argument specs
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
set_fact:
|
||||
docker_volume_definition: []
|
||||
container_published_ports: []
|
||||
docker_volumes_new: []
|
||||
final_docker_volumes: "{{ docker_volumes }}"
|
||||
|
||||
- name: Set docker service full name
|
||||
@@ -11,16 +12,18 @@
|
||||
docker_service_name: "{{ docker_service }}_{{ docker_service_suffix }}"
|
||||
when: docker_service_suffix is defined
|
||||
|
||||
|
||||
- name: Warn about docker_volumes legacy format
|
||||
debug:
|
||||
msg: "docker_volumes is deprecated. This support may be removed after december 2022. Use docker_mounts instead!"
|
||||
when: docker_volumes | length > 0
|
||||
|
||||
- name: Convert docker_volumes from legacy format
|
||||
when: docker_volumes | length > 0 and docker_volumes[0] is not mapping
|
||||
block:
|
||||
- name: Warn about docker_volumes legacy format
|
||||
debug:
|
||||
msg: "docker_volumes is set in a legacy, deprecated format. This support may be removed after december 2022."
|
||||
|
||||
- name: Add legacy docker volumes to docker_volumes_new using the new format
|
||||
set_fact:
|
||||
docker_volumes_new: "{{ docker_volumes_new | default([]) + [{'name': item.split(':')[0], 'path': item.split(':')[1]}] }}"
|
||||
docker_volumes_new: "{{ docker_volumes_new | default([]) + [{'name': item.split(':')[0] | regex_replace('^' + docker_service_name + '_', ''), 'path': item.split(':')[1]}] }}"
|
||||
when: "'/' not in item.split(':')[0]"
|
||||
loop: "{{ docker_volumes }}"
|
||||
- name: Add legacy docker src bind mounts to docker_volumes_new using the new format
|
||||
@@ -31,3 +34,8 @@
|
||||
- name: Set final_docker_volumes variable
|
||||
set_fact:
|
||||
final_docker_volumes: "{{ docker_volumes_new }}"
|
||||
|
||||
- name: Convert final_docker_volumes to docker_mounts
|
||||
set_fact:
|
||||
docker_mounts: "{{ final_docker_volumes }}"
|
||||
when: docker_mounts | length == 0 and final_docker_volumes | length > 0
|
||||
|
||||
@@ -73,3 +73,8 @@
|
||||
networks: "{{ container_networks | default(omit) }}"
|
||||
log_driver: local
|
||||
register: container_out
|
||||
|
||||
- name: Reset docker_mounts if converted from docker_volumes
|
||||
set_fact:
|
||||
docker_mounts: []
|
||||
when: final_docker_volumes | length > 0
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
- name: Create directories and put files in them
|
||||
when:
|
||||
- docker_volumes | length > 0
|
||||
- (docker_volume_type == 'bind') or (docker_volumes | selectattr('template', 'defined') | list | length > 0)
|
||||
- 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:
|
||||
@@ -42,33 +42,33 @@
|
||||
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_volumes }}"
|
||||
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_volumes }}"
|
||||
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_volumes }}"
|
||||
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_volumes }}"
|
||||
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: "{{ final_docker_volumes }}"
|
||||
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: "{{ final_docker_volumes }}"
|
||||
loop: "{{ docker_mounts }}"
|
||||
|
||||
Reference in New Issue
Block a user