From 09daba7fd704d6463372a9e27ae0fd56ad17a5d4 Mon Sep 17 00:00:00 2001 From: uumas Date: Tue, 9 May 2023 20:20:01 +0300 Subject: [PATCH] container: support phpmyadmin for mariadb --- roles/container/meta/argument_specs.yml | 4 ++-- roles/container/tasks/database.yml | 15 +++++++++++++++ roles/container/tasks/proxy.yml | 10 ++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/roles/container/meta/argument_specs.yml b/roles/container/meta/argument_specs.yml index e39b9b4..696d638 100644 --- a/roles/container/meta/argument_specs.yml +++ b/roles/container/meta/argument_specs.yml @@ -118,10 +118,10 @@ argument_specs: - https default: http ports: - description: "ports[docker_service]['http'] or ports[docker_service]['https'] defines the port on which the container will listen on for reverse proxy connections. Required if reverse_proxy_type is caddy." + description: "ports[docker_service]['http'] or ports[docker_service]['https'] defines the port on which the container will listen on for reverse proxy connections. Required if reverse_proxy_type is caddy. If ports[docker_service]['phpmyadmin'] is defined and docker_database is mariadb, phpmyadmin will is installed." type: dict docker_vhost_domains: - description: "docker_vhost_domains[docker_service] is a list which defines which domains should be proxied to the container. Required if reverse_proxy_type is not none" + description: "docker_vhost_domains[docker_service] is a list which defines which domains should be proxied to the container. Required if reverse_proxy_type is not none. docker_vhost_domains[docker_service + '_phpmyadmin'] is used for phpmyadmin" type: dict docker_published_ports: description: "A list of published ports in docker format (::)" diff --git a/roles/container/tasks/database.yml b/roles/container/tasks/database.yml index df2ee20..5290cb7 100644 --- a/roles/container/tasks/database.yml +++ b/roles/container/tasks/database.yml @@ -77,3 +77,18 @@ mounts: "{{ db_container_mount_definition }}" networks: "{{ container_networks | default(omit) }}" log_driver: local + +- name: phpMyAdmin container for {{ docker_service_name }} + docker_container: + name: "{{ docker_service_name }}_phpmyadmin" + image: phpmyadmin + pull: true + env: + PMA_ABSOLUTE_URI: "https://{{ docker_vhost_domains[docker_service_name + '_phpmyadmin'][0] }}" + PMA_HOST: "{{ docker_service_name }}_db" + published_ports: + - "127.0.0.1:{{ ports[docker_service_name]['phpmyadmin'] }}:80" + restart_policy: always + networks: "{{ container_networks | default(omit) }}" + log_driver: local + when: docker_database == 'mariadb' and ports[docker_service_name]['phpmyadmin'] is defined diff --git a/roles/container/tasks/proxy.yml b/roles/container/tasks/proxy.yml index 3443484..c2de1b5 100644 --- a/roles/container/tasks/proxy.yml +++ b/roles/container/tasks/proxy.yml @@ -21,3 +21,13 @@ - name: Include traefik vars include_vars: traefik.yml when: reverse_proxy_type == 'traefik' + +- name: Reverse proxy for phpmyadmin + include_role: + name: uumas.general.vhost + vars: + vhost_type: reverse_proxy + vhost_id: "{{ docker_service_name }}_phpmyadmin" + vhost_domains: "{{ docker_vhost_domains[docker_service_name + '_phpmyadmin'] }}" + proxy_target_port: "{{ ports[docker_service_name]['phpmyadmin'] }}" + when: docker_database == 'mariadb' and ports[docker_service_name]['phpmyadmin'] is defined