Files
ansible-docker/roles/container/tasks/init.yml

56 lines
2.4 KiB
YAML

---
- name: Reset variables
set_fact:
docker_volume_definition: []
container_published_ports: []
docker_volumes_new: []
final_docker_volumes: "{{ docker_volumes }}"
container_image: ''
- name: Set assistive variables
set_fact:
template_mounts_needed: "{{ docker_mounts | selectattr('template', 'defined') | list | length > 0 }}"
volumes_needed: "{{ docker_mounts | selectattr('name', 'defined') | list | length > 0 }}"
dockerfile_needed: "{{ dockerfile is defined and dockerfile | length > 0 }}"
- name: Set more assistive variables
set_fact:
bind_volumes_needed: "{{ volumes_needed and docker_volume_type == 'bind' }}"
named_volumes_needed: "{{ volumes_needed and docker_volume_type == 'named' }}"
- name: Set even more assistive variables
set_fact:
create_opt_directory: "{{ dockerfile_needed or docker_host_user or bind_volumes_needed or template_mounts_needed }}"
create_mounts_directory: "{{ bind_volumes_needed or template_mounts_needed }}"
- name: Set docker service full name
set_fact:
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: 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] | 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
set_fact:
docker_volumes_new: "{{ docker_volumes_new | default([]) + [{'src': item.split(':')[0], 'path': item.split(':')[1]}] }}"
when: "'/' in item.split(':')[0]"
loop: "{{ docker_volumes }}"
- 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