mirror of
https://github.com/containers/podman-compose.git
synced 2025-01-09 23:48:17 +01:00
209 lines
7.8 KiB
Django/Jinja
209 lines
7.8 KiB
Django/Jinja
#jinja2: lstrip_blocks: True
|
|
version: '2'
|
|
services:
|
|
|
|
web:
|
|
image: {{ awx_docker_actual_image }}
|
|
container_name: awx_web
|
|
depends_on:
|
|
- redis
|
|
{% if pg_hostname is not defined %}
|
|
- postgres
|
|
{% endif %}
|
|
{% if (host_port is defined) or (host_port_ssl is defined) %}
|
|
ports:
|
|
{% if (host_port_ssl is defined) and (ssl_certificate is defined) %}
|
|
- "{{ host_port_ssl }}:8053"
|
|
{% endif %}
|
|
{% if host_port is defined %}
|
|
- "{{ host_port }}:8052"
|
|
{% endif %}
|
|
{% endif %}
|
|
hostname: {{ awx_web_hostname }}
|
|
user: root
|
|
restart: unless-stopped
|
|
{% if (awx_web_container_labels is defined) and (',' in awx_web_container_labels) %}
|
|
{% set awx_web_container_labels_list = awx_web_container_labels.split(',') %}
|
|
labels:
|
|
{% for awx_web_container_label in awx_web_container_labels_list %}
|
|
- {{ awx_web_container_label }}
|
|
{% endfor %}
|
|
{% elif awx_web_container_labels is defined %}
|
|
labels:
|
|
- {{ awx_web_container_labels }}
|
|
{% endif %}
|
|
volumes:
|
|
- supervisor-socket:/var/run/supervisor
|
|
- rsyslog-socket:/var/run/awx-rsyslog/
|
|
- rsyslog-config:/var/lib/awx/rsyslog/
|
|
- "{{ docker_compose_dir }}/SECRET_KEY:/etc/tower/SECRET_KEY"
|
|
- "{{ docker_compose_dir }}/environment.sh:/etc/tower/conf.d/environment.sh"
|
|
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
|
|
- "{{ docker_compose_dir }}/nginx.conf:/etc/nginx/nginx.conf:ro"
|
|
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
|
|
{% if project_data_dir is defined %}
|
|
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
|
|
{% endif %}
|
|
{% if custom_venv_dir is defined %}
|
|
- "{{ custom_venv_dir +':'+ custom_venv_dir +':rw' }}"
|
|
{% endif %}
|
|
{% if ca_trust_dir is defined %}
|
|
- "{{ ca_trust_dir +':/etc/pki/ca-trust/source/anchors:ro' }}"
|
|
{% endif %}
|
|
{% if (ssl_certificate is defined) and (ssl_certificate_key is defined) %}
|
|
- "{{ ssl_certificate +':/etc/nginx/awxweb.pem:ro' }}"
|
|
- "{{ ssl_certificate_key +':/etc/nginx/awxweb_key.pem:ro' }}"
|
|
{% elif (ssl_certificate is defined) and (ssl_certificate_key is not defined) %}
|
|
- "{{ ssl_certificate +':/etc/nginx/awxweb.pem:ro' }}"
|
|
{% endif %}
|
|
{% if (awx_container_search_domains is defined) and (',' in awx_container_search_domains) %}
|
|
{% set awx_container_search_domains_list = awx_container_search_domains.split(',') %}
|
|
dns_search:
|
|
{% for awx_container_search_domain in awx_container_search_domains_list %}
|
|
- {{ awx_container_search_domain }}
|
|
{% endfor %}
|
|
{% elif awx_container_search_domains is defined %}
|
|
dns_search: "{{ awx_container_search_domains }}"
|
|
{% endif %}
|
|
{% if (awx_alternate_dns_servers is defined) and (',' in awx_alternate_dns_servers) %}
|
|
{% set awx_alternate_dns_servers_list = awx_alternate_dns_servers.split(',') %}
|
|
dns:
|
|
{% for awx_alternate_dns_server in awx_alternate_dns_servers_list %}
|
|
- {{ awx_alternate_dns_server }}
|
|
{% endfor %}
|
|
{% elif awx_alternate_dns_servers is defined %}
|
|
dns: "{{ awx_alternate_dns_servers }}"
|
|
{% endif %}
|
|
{% if (docker_compose_extra_hosts is defined) and (':' in docker_compose_extra_hosts) %}
|
|
{% set docker_compose_extra_hosts_list = docker_compose_extra_hosts.split(',') %}
|
|
extra_hosts:
|
|
{% for docker_compose_extra_host in docker_compose_extra_hosts_list %}
|
|
- "{{ docker_compose_extra_host }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
environment:
|
|
http_proxy: {{ http_proxy | default('') }}
|
|
https_proxy: {{ https_proxy | default('') }}
|
|
no_proxy: {{ no_proxy | default('') }}
|
|
{% if docker_logger is defined %}
|
|
logging:
|
|
driver: {{ docker_logger }}
|
|
{% endif %}
|
|
|
|
task:
|
|
image: {{ awx_docker_actual_image }}
|
|
container_name: awx_task
|
|
depends_on:
|
|
- redis
|
|
- web
|
|
{% if pg_hostname is not defined %}
|
|
- postgres
|
|
{% endif %}
|
|
command: /usr/bin/launch_awx_task.sh
|
|
hostname: {{ awx_task_hostname }}
|
|
user: root
|
|
restart: unless-stopped
|
|
volumes:
|
|
- supervisor-socket:/var/run/supervisor
|
|
- rsyslog-socket:/var/run/awx-rsyslog/
|
|
- rsyslog-config:/var/lib/awx/rsyslog/
|
|
- "{{ docker_compose_dir }}/SECRET_KEY:/etc/tower/SECRET_KEY"
|
|
- "{{ docker_compose_dir }}/environment.sh:/etc/tower/conf.d/environment.sh"
|
|
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
|
|
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
|
|
{% if project_data_dir is defined %}
|
|
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
|
|
{% endif %}
|
|
{% if custom_venv_dir is defined %}
|
|
- "{{ custom_venv_dir +':'+ custom_venv_dir +':rw' }}"
|
|
{% endif %}
|
|
{% if ca_trust_dir is defined %}
|
|
- "{{ ca_trust_dir +':/etc/pki/ca-trust/source/anchors:ro' }}"
|
|
{% endif %}
|
|
{% if ssl_certificate is defined %}
|
|
- "{{ ssl_certificate +':/etc/nginx/awxweb.pem:ro' }}"
|
|
{% endif %}
|
|
{% if (awx_container_search_domains is defined) and (',' in awx_container_search_domains) %}
|
|
{% set awx_container_search_domains_list = awx_container_search_domains.split(',') %}
|
|
dns_search:
|
|
{% for awx_container_search_domain in awx_container_search_domains_list %}
|
|
- {{ awx_container_search_domain }}
|
|
{% endfor %}
|
|
{% elif awx_container_search_domains is defined %}
|
|
dns_search: "{{ awx_container_search_domains }}"
|
|
{% endif %}
|
|
{% if (awx_alternate_dns_servers is defined) and (',' in awx_alternate_dns_servers) %}
|
|
{% set awx_alternate_dns_servers_list = awx_alternate_dns_servers.split(',') %}
|
|
dns:
|
|
{% for awx_alternate_dns_server in awx_alternate_dns_servers_list %}
|
|
- {{ awx_alternate_dns_server }}
|
|
{% endfor %}
|
|
{% elif awx_alternate_dns_servers is defined %}
|
|
dns: "{{ awx_alternate_dns_servers }}"
|
|
{% endif %}
|
|
{% if (docker_compose_extra_hosts is defined) and (':' in docker_compose_extra_hosts) %}
|
|
{% set docker_compose_extra_hosts_list = docker_compose_extra_hosts.split(',') %}
|
|
extra_hosts:
|
|
{% for docker_compose_extra_host in docker_compose_extra_hosts_list %}
|
|
- "{{ docker_compose_extra_host }}"
|
|
{% endfor %}
|
|
{% endif %}
|
|
environment:
|
|
AWX_SKIP_MIGRATIONS: "1"
|
|
http_proxy: {{ http_proxy | default('') }}
|
|
https_proxy: {{ https_proxy | default('') }}
|
|
no_proxy: {{ no_proxy | default('') }}
|
|
SUPERVISOR_WEB_CONFIG_PATH: '/etc/supervisord.conf'
|
|
|
|
redis:
|
|
image: {{ redis_image }}
|
|
container_name: awx_redis
|
|
restart: unless-stopped
|
|
environment:
|
|
http_proxy: {{ http_proxy | default('') }}
|
|
https_proxy: {{ https_proxy | default('') }}
|
|
no_proxy: {{ no_proxy | default('') }}
|
|
command: ["/usr/local/etc/redis/redis.conf"]
|
|
volumes:
|
|
- "{{ docker_compose_dir }}/redis.conf:/usr/local/etc/redis/redis.conf:ro"
|
|
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
|
|
{% if docker_logger is defined %}
|
|
logging:
|
|
driver: {{ docker_logger }}
|
|
{% endif %}
|
|
|
|
{% if pg_hostname is not defined %}
|
|
postgres:
|
|
image: {{ postgresql_image }}
|
|
container_name: awx_postgres
|
|
restart: unless-stopped
|
|
volumes:
|
|
- "{{ postgres_data_dir }}/12/data/:/var/lib/postgresql/data:Z"
|
|
environment:
|
|
POSTGRES_USER: {{ pg_username }}
|
|
POSTGRES_PASSWORD: {{ pg_password }}
|
|
POSTGRES_DB: {{ pg_database }}
|
|
http_proxy: {{ http_proxy | default('') }}
|
|
https_proxy: {{ https_proxy | default('') }}
|
|
no_proxy: {{ no_proxy | default('') }}
|
|
{% if docker_logger is defined %}
|
|
logging:
|
|
driver: {{ docker_logger }}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if docker_compose_subnet is defined %}
|
|
networks:
|
|
default:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: {{ docker_compose_subnet }}
|
|
{% endif %}
|
|
|
|
volumes:
|
|
supervisor-socket:
|
|
rsyslog-socket:
|
|
rsyslog-config:
|