diff --git a/roles/container/defaults/main.yml b/roles/container/defaults/main.yml index d7e3dd2..1a277d4 100644 --- a/roles/container/defaults/main.yml +++ b/roles/container/defaults/main.yml @@ -1,6 +1,5 @@ --- reverse_proxy_type: caddy -docker_database: none docker_additional_env: {} docker_published_ports: [] diff --git a/roles/container/meta/main.yml b/roles/container/meta/main.yml index 129a719..8edf377 100644 --- a/roles/container/meta/main.yml +++ b/roles/container/meta/main.yml @@ -5,5 +5,6 @@ dependencies: - role: uumas.general.reverse_proxy vhost_id: "{{ docker_service }}" vhost_domains: "{{ docker_vhost_domains[docker_service] }}" - proxy_target: http://127.0.0.1:{{ ports[docker_service].http }} + proxy_target_protocol: "{{ docker_proxy_target_protocol | default('http') }}" + proxy_target_port: "{{ ports[docker_service][proxy_target_protocol] }}" when: reverse_proxy_type != 'none' and reverse_proxy_type != 'traefik' diff --git a/roles/container/tasks/main.yml b/roles/container/tasks/main.yml index 7b9a16b..fda6a05 100644 --- a/roles/container/tasks/main.yml +++ b/roles/container/tasks/main.yml @@ -3,11 +3,18 @@ - name: "{{ docker_service }} docker network" docker_network: name: "{{ docker_service }}" + when: docker_network_mode is not defined or docker_network_mode != 'host' - 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' + container_published_ports: ["127.0.0.1:{{ ports[docker_service][proxy_target_protocol] }}:{{ docker_image_http_port }}"] + when: reverse_proxy_type != 'traefik' and (docker_network_mode is not defined or docker_network_mode != 'host') + +- name: Set networks variable + set_fact: + container_networks: + - name: "{{ docker_service }}" + when: docker_network_mode is not defined or docker_network_mode != 'host' - name: Include traefik vars include_vars: traefik.yml @@ -21,7 +28,7 @@ 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 +- name: Set mongo container env set_fact: db_container_image: 'mongo:latest' db_container_data: /data/db @@ -37,8 +44,7 @@ restart_policy: always volumes: - "{{ docker_service }}_db:{{ db_container_data }}" - networks: - - name: "{{ docker_service }}" + networks: "{{ container_networks | default(omit) }}" when: docker_database is defined - name: "Container for {{ docker_service }}" @@ -48,13 +54,12 @@ pull: true container_default_behavior: no_defaults volumes: "{{ docker_volumes | default(omit) }}" - published_ports: "{{ container_published_ports + docker_published_ports | default(omit) }}" + published_ports: "{{ container_published_ports | default([]) + 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 }}" + networks: "{{ container_networks | default(omit) }}" register: container_out