--- - name: "{{ docker_service }} docker network" docker_network: name: "{{ docker_service }}" - name: Set published ports variable set_fact: container_published_ports: ["127.0.0.1:{{ ports[docker_service].http }}:{{ docker_image_http_port }}"] when: reverse_proxy_type != 'traefik' and docker_network_mode is defined and docker_network_mode != 'host' - name: Include traefik vars include_vars: traefik.yml when: reverse_proxy_type == 'traefik' - name: Set postgres container env set_fact: db_container_image: 'postgres:14-alpine' db_container_env: POSTGRES_USER: "{{ docker_service }}" POSTGRES_PASSWORD: "{{ database_passwords[docker_service] }}" db_container_data: /var/lib/postgresql/data when: docker_database is defined and docker_database == 'postgres' - name: Set postgres container env set_fact: db_container_image: 'mongo:latest' db_container_data: /data/db when: docker_database is defined and docker_database == 'mongo' - name: "{{ docker_database }} database container for {{ docker_service }}" docker_container: name: "{{ docker_service }}_db" image: "{{ db_container_image }}" pull: yes container_default_behavior: no_defaults env: "{{ db_container_env | default(omit) }}" restart_policy: always volumes: - "{{ docker_service }}_db:{{ db_container_data }}" networks: - name: "{{ docker_service }}" when: docker_database is defined - name: "Container for {{ docker_service }}" docker_container: name: "{{ docker_service }}" image: "{{ docker_image }}" pull: true container_default_behavior: no_defaults volumes: "{{ docker_volumes | default(omit) }}" published_ports: "{{ container_published_ports + docker_published_ports | default(omit) }}" labels: "{{ traefik_labels | default(omit) }}" env: "{{ docker_env | combine(docker_additional_env) }}" entrypoint: "{{ docker_entrypoint | default(omit) }}" restart_policy: always network_mode: "{{ docker_network_mode | default(omit) }}" networks: - name: "{{ docker_service }}" register: container_out