--- - 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 }}" db_config_mounts_needed: "{{ docker_mariadb_config | 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 or db_config_mounts_needed }}" create_mounts_directory: "{{ bind_volumes_needed or template_mounts_needed or db_config_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