summaryrefslogtreecommitdiffstats
path: root/installer/roles/local_docker/templates/docker-compose.yml.j2
blob: e53295c58cd53b8d2813fc519e9a6a3e5600d5d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#jinja2: lstrip_blocks: True
version: '2'
services:

  web:
    image: {{ awx_web_docker_actual_image }}
    container_name: awx_web
    depends_on:
      - rabbitmq
      - memcached
      {% if pg_hostname is not defined %}
      - postgres
      {% endif %}
    ports:
      {% if ssl_certificate is defined %}
      - "{{ host_port_ssl }}:8053"
      {% endif %}
      - "{{ host_port }}:8052"
    hostname: {{ awx_web_hostname }}
    user: root
    restart: unless-stopped
    volumes:
      - "{{ 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"
    {% 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 %}
    environment:
      http_proxy: {{ http_proxy | default('') }}
      https_proxy: {{ https_proxy | default('') }}
      no_proxy: {{ no_proxy | default('') }}

  task:
    image: {{ awx_task_docker_actual_image }}
    container_name: awx_task
    depends_on:
      - rabbitmq
      - memcached
      - web
      {% if pg_hostname is not defined %}
      - postgres
      {% endif %}
    hostname: {{ awx_task_hostname }}
    user: root
    restart: unless-stopped
    volumes:
      - "{{ 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"
    {% 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 %}
    environment:
      http_proxy: {{ http_proxy | default('') }}
      https_proxy: {{ https_proxy | default('') }}
      no_proxy: {{ no_proxy | default('') }}

  rabbitmq:
    image: {{ rabbitmq_image }}
    container_name: awx_rabbitmq
    restart: unless-stopped
    environment:
      RABBITMQ_DEFAULT_VHOST: "{{ rabbitmq_default_vhost }}"
      RABBITMQ_DEFAULT_USER: "{{ rabbitmq_user }}"
      RABBITMQ_DEFAULT_PASS: "{{ rabbitmq_password | quote }}"
      RABBITMQ_ERLANG_COOKIE: {{ rabbitmq_erlang_cookie }}
      http_proxy: {{ http_proxy | default('') }}
      https_proxy: {{ https_proxy | default('') }}
      no_proxy: {{ no_proxy | default('') }}

  memcached:
    image: "{{ memcached_image }}:{{ memcached_version }}"
    container_name: awx_memcached
    restart: unless-stopped
    environment:
      http_proxy: {{ http_proxy | default('') }}
      https_proxy: {{ https_proxy | default('') }}
      no_proxy: {{ no_proxy | default('') }}

  {% if pg_hostname is not defined %}
  postgres:
    image: postgres:10
    container_name: awx_postgres
    restart: unless-stopped
    volumes:
      - {{ postgres_data_dir }}/10/data/:/var/lib/postgresql/data/pgdata:Z
    environment:
      POSTGRES_USER: {{ pg_username }}
      POSTGRES_PASSWORD: {{ pg_password }}
      POSTGRES_DB: {{ pg_database }}
      PGDATA: /var/lib/postgresql/data/pgdata
      http_proxy: {{ http_proxy | default('') }}
      https_proxy: {{ https_proxy | default('') }}
      no_proxy: {{ no_proxy | default('') }}
  {% endif %}