-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
executable file
·115 lines (106 loc) · 3.03 KB
/
docker-compose.yml
File metadata and controls
executable file
·115 lines (106 loc) · 3.03 KB
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
# N.B. this docker-compose file is only designed for use in development,
# testing and building. For production use, see the interop-release-config
# repository (TODO)
version: '3.7'
x-php-defaults: &php-defaults
image: gsmainclusivetechlab/interop-test-platform:latest
build:
context: src
dockerfile: $PWD/Dockerfiles/${ENV:-development}.Dockerfile
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
env_file: service.env
depends_on:
- redis
- mysqldb
volumes:
- ./src/build/php-ini-development.ini:/usr/local/etc/php/conf.d/custom.ini
- ./src/build/php-fpm.conf:/etc/php7/php-fpm.d/www.conf
- ./src/build/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
- ./src/build/nginx-server.conf:/etc/nginx/nginx.conf
- ./src/build/client-CA-nginx-renew.sh:/etc/periodic/15min/client-CA-nginx-renew.sh
- ./src/build/certbot-cert-nginx-reload.sh:/etc/periodic/15min/certbot-cert-nginx-reload.sh
- ./src/build/nginx-includes:/etc/nginx/includes
- ./src/build/docker-bootstrap.sh:/usr/local/bin/start
- ./src:/var/www/html
- ca_certs:/etc/nginx/ssl/default-certs
- certbot_certs:/etc/nginx/ssl/letsencrypt
- certbot_www:/var/www/certbot
- storage:/var/www/html/storage/app
- openapis:/var/www/html/storage/app/openapis
services:
app:
<<: *php-defaults
ports:
- '${HOST_WEB_PORT:-80}:8080'
- '${HOST_HTTPS_WEB_PORT:-443}:8443'
environment:
CONTAINER_ROLE: app
PROJECT_DOMAIN: ${PROJECT_DOMAIN}
HTTPS_SSL_CERT: ${HTTPS_SSL_CERT:-selfsigned}
WAIT_HOSTS: mysqldb:3306
WAIT_SLEEP_INTERVAL: 5
WAIT_HOSTS_TIMEOUT: 100
HOST_WEB_PORT: ${HOST_WEB_PORT}
COMMIT_HASH: ${COMMIT_HASH}
COMMIT_TAG: ${COMMIT_TAG}
queue:
<<: *php-defaults
environment:
CONTAINER_ROLE: queue
redis:
image: redis:5
environment:
- REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL
volumes:
- redisdata:/data
mysqldb:
image: gsmainclusivetechlab/interop-test-platform/mysqldb:latest
build:
context: mysqldb
env_file: service.env
cap_add:
- SYS_NICE
healthcheck:
test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
timeout: 20s
retries: 10
volumes:
- mysqldata:/var/lib/mysql
# TODO: do we need certbot in development?
certbot:
environment:
PROJECT_DOMAIN: ${PROJECT_DOMAIN}
image: certbot/certbot
restart: unless-stopped #+++
volumes:
- certbot_certs:/etc/letsencrypt
- certbot_www:/var/www/certbot
entrypoint:
"/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait
$${!}; done;'"
mailhog:
image: mailhog/mailhog
restart: always
ports:
- '${HOST_MAILHOG_PORT}:8025'
phpmyadmin:
depends_on:
- mysqldb
image: phpmyadmin/phpmyadmin
environment:
- PMA_HOST=mysqldb
ports:
- '${HOST_PHPMYADMIN_PORT}:80'
volumes:
- /sessions
volumes:
mysqldata:
redisdata:
ca_certs:
certbot_certs:
certbot_www:
storage:
openapis: