diff --git a/roles/container/tasks/init.yml b/roles/container/tasks/init.yml index 2586934..7570486 100644 --- a/roles/container/tasks/init.yml +++ b/roles/container/tasks/init.yml @@ -1,12 +1,18 @@ --- +- name: Reset variables + set_fact: + docker_volume_definition: [] + container_published_ports: [] + final_docker_volumes: "{{ docker_volumes }}" + - name: Set docker service full name set_fact: docker_service_name: "{{ docker_service }}_{{ docker_service_suffix }}" when: docker_service_suffix is defined - name: Convert docker_volumes from legacy format - when: docker_volumes is defined and docker_volumes[0] is not mapping + when: docker_volumes | length > 0 and docker_volumes[0] is not mapping block: - name: Warn about docker_volumes legacy format debug: diff --git a/roles/container/tasks/main.yml b/roles/container/tasks/main.yml index 4398849..271bc2c 100644 --- a/roles/container/tasks/main.yml +++ b/roles/container/tasks/main.yml @@ -57,8 +57,8 @@ image: "{{ docker_built_image.image.Id if dockerfile is defined and not ansible_check_mode else docker_image }}" user: "{{ docker_user | default(omit) }}" pull: "{{ dockerfile is not defined }}" - volumes: "{{ docker_volume_definition | default(omit) }}" - published_ports: "{{ container_published_ports | default([]) + docker_published_ports | default(omit) }}" + volumes: "{{ docker_volume_definition }}" + published_ports: "{{ container_published_ports + docker_published_ports }}" labels: "{{ traefik_labels | default(omit) }}" env: "{{ docker_env | combine(docker_additional_env) }}" entrypoint: "{{ docker_entrypoint | default(omit) }}" diff --git a/roles/container/tasks/volumes.yml b/roles/container/tasks/volumes.yml index 4acae37..784df99 100644 --- a/roles/container/tasks/volumes.yml +++ b/roles/container/tasks/volumes.yml @@ -38,18 +38,18 @@ loop: "{{ docker_volumes }}" - name: Set docker_volume_definition for named binds set_fact: - docker_volume_definition: "{{ docker_volume_definition | default([]) + [docker_mounts_dir + '/' + item.name + ':' + item.path] }}" + docker_volume_definition: "{{ docker_volume_definition + [docker_mounts_dir + '/' + item.name + ':' + item.path] }}" when: item.name is defined loop: "{{ docker_volumes }}" - name: Set docker_volume_definition for src binds set_fact: - docker_volume_definition: "{{ docker_volume_definition | default([]) + [item.src + ':' + item.path] }}" + docker_volume_definition: "{{ docker_volume_definition + [item.src + ':' + item.path] }}" when: item.src is defined loop: "{{ final_docker_volumes }}" - name: Set docker_volume_definition for named volumes set_fact: - docker_volume_definition: "{{ docker_volume_definition | default([]) + [item.name + ':' + item.path] }}" + docker_volume_definition: "{{ docker_volume_definition + [item.name + ':' + item.path] }}" when: docker_volume_type == 'named' and item.name is defined loop: "{{ final_docker_volumes }}" diff --git a/roles/container/vars/main.yml b/roles/container/vars/main.yml index 8f6b123..08cf00f 100644 --- a/roles/container/vars/main.yml +++ b/roles/container/vars/main.yml @@ -1,11 +1,11 @@ --- -final_docker_volumes: "{{ docker_volumes }}" docker_service_name: "{{ docker_service }}" reverse_proxy_type: caddy docker_proxy_target_protocol: http docker_additional_env: {} +docker_volumes: [] docker_published_ports: []