forked from SaillantNicolas/cgalmediawiki
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
141 lines (131 loc) · 3.75 KB
/
docker-compose.yml
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
secrets:
cgal_password:
external: true
name: "CGAL_MEMBERS_PASSWORD"
x-cgal-env: &cgal-env
MW_SITE_FQDN: ${MW_SITE_FQDN:-http://localhost:8080}
MEDIAWIKI_SITE_SERVER: ${MW_SITE_FQDN:-http://localhost:8080}
MEDIAWIKI_SITE_NAME: My MediaWiki
MEDIAWIKI_DB_TYPE: mysql
MEDIAWIKI_DB_HOST: db
MEDIAWIKI_DB_USER: mediawiki
MEDIAWIKI_DB_PASSWORD: mediawiki
MYSQL_DATABASE: mediawiki
MYSQL_USER: mediawiki
MYSQL_PASSWORD: mediawiki
MYSQL_ROOT_PASSWORD: root
HTTPS_PORT: ${HTTPS_PORT:-8443}
HTTP_PORT: ${HTTP_PORT:-8080}
HTTP_TEST_PORT: ${HTTP_TEST_PORT:-8083}
HTTP_EDITORS_TEST_PORT: ${HTTP_EDITORS_TEST_PORT:-8084}
services:
mediawiki_members:
build:
context: .
image: localhost/cgalmediawiki_mediawiki:latest
profiles:
- production
- test
restart: always
volumes:
- ./LocalSettings-Members.php:/var/www/html/LocalSettings.php
- ./composer.json:/var/www/html/composer.json
- ./images:/var/www/html/images
- ./config/cgal_wiki_httpd.conf:/etc/apache2/conf-available/short-url.conf
environment: *cgal-env
ports:
- "${HTTP_TEST_PORT:-127.0.0.1:8083}:80"
depends_on:
db:
condition: service_healthy
wiki_editors:
build:
context: .
image: localhost/cgalmediawiki_mediawiki:latest
profiles:
- production
- test
restart: always
volumes:
- ./LocalSettings-Editors.php:/var/www/html/LocalSettings.php
- ./composer.json:/var/www/html/composer.json
- ./images:/var/www/html/images
- ./config/cgal_editors_wiki_httpd.conf:/etc/apache2/conf-available/short-url.conf
environment: *cgal-env
ports:
- "${HTTP_EDITORS_TEST_PORT:-127.0.0.1:8084}:80"
depends_on:
db:
condition: service_healthy
db:
image: docker.io/library/mariadb
restart: always
profiles:
- update_db
- production
- test
environment: *cgal-env
volumes:
- ./db-init:/docker-entrypoint-initdb.d
- ./db-dumps:/db-dumps
- db-data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 20s
timeout: 10s
retries: 3
start_period: 40s
caddy:
image: docker.io/library/caddy:2.8-alpine
restart: unless-stopped
entrypoint: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
environment:
<<: *cgal-env
CGAL_MEMBERS_PASSWORD: ${CGAL_MEMBERS_PASSWORD}
profiles:
- production
ports:
- "${SERVER_IP:-0.0.0.0}:${HTTPS_PORT:-8443}:${HTTPS_PORT:-8443}"
- "${SERVER_IP:-0.0.0.0}:${HTTPS_PORT:-8443}:${HTTPS_PORT:-8443}/udp"
- "${SERVER_IP:-0.0.0.0}:${HTTP_PORT:-8080}:${HTTP_PORT:-8080}"
volumes:
- caddy-data:/data
- ./config/Caddyfile:/etc/caddy/Caddyfile
depends_on:
- mediawiki_members
- wiki_editors
update_db:
build:
context: .
args:
- MW_VERSION=1.31
- UPDATE=1
profiles:
- update_db
environment: *cgal-env
volumes:
- ./update-context/LocalSettings-Members.php:/var/www/html/LocalSettings.php
- ./update-context/composer.json:/var/www/html/composer.json
entrypoint: [ "php", "maintenance/update.php", "--quick" ]
depends_on:
db:
condition: service_healthy
update_db_editors:
build:
context: .
args:
- MW_VERSION=1.31
- UPDATE=1
profiles:
- update_db
environment: *cgal-env
volumes:
- ./update-context/LocalSettings-Editors.php:/var/www/html/LocalSettings.php
- ./update-context/composer.json:/var/www/html/composer.json
entrypoint: [ "php", "maintenance/update.php", "--quick" ]
depends_on:
db:
condition: service_healthy
volumes:
db-data:
caddy-data: