--- - name: Container role initialization import_tasks: init.yml - name: Docker network when: docker_network_mode is not defined or docker_network_mode != 'host' or docker_networks | length > 0 block: - name: Set networks variable to {{ docker_service_name }} set_fact: container_networks: - name: "{{ docker_service_name }}" when: docker_networks | length == 0 - name: Set networks variable to {{ docker_networks }} set_fact: container_networks: "{{ docker_networks }}" when: docker_networks | length > 0 - name: Create docker networks docker_network: name: "{{ item.name }}" loop: "{{ container_networks }}" - name: Reverse proxy for container include_tasks: proxy.yml when: reverse_proxy_type != 'none' - name: Additional services include_tasks: additional.yml when: docker_additional_services is defined - name: Create directory /opt/{{ docker_service }} file: path: "/opt/{{ docker_service }}" state: directory mode: 0755 when: create_opt_directory - name: Container image import_tasks: image.yml - name: Container user include_tasks: host_user.yml when: docker_host_user - name: Create suffix directory when: create_opt_directory and docker_service_suffix is defined 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 - name: Set container_workdir variable set_fact: container_workdir: /opt/{{ docker_service }}/{{ docker_service_suffix }} - name: Set container_workdir variable set_fact: container_workdir: /opt/{{ docker_service }} when: docker_service_suffix is not defined - name: Create mounts directory when: create_mounts_directory block: - name: Set docker_mounts_dir set_fact: docker_mounts_dir: "{{ container_workdir }}/mounts" - 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: Database container include_tasks: database.yml when: docker_database != 'none' - name: Container volumes import_tasks: volumes.yml - name: "Container for {{ docker_service_name }}" docker_container: name: "{{ docker_service_name }}" image: "{{ container_image.Id if container_image != '' else docker_image }}" user: "{{ docker_user if docker_host_user else omit }}" mounts: "{{ docker_volume_definition }}" published_ports: "{{ container_published_ports + docker_published_ports }}" labels: "{{ traefik_labels | default(omit) }}" env: "{{ docker_env | combine(docker_additional_env) | combine({'TZ': timezone}) }}" entrypoint: "{{ docker_entrypoint | default(omit) }}" command: "{{ docker_command | default(omit) }}" restart_policy: always network_mode: "{{ docker_network_mode | default(omit) }}" 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