11name : joomla-external-login_devcontainer
22services :
3+ joomla :
4+ build :
5+ context : ./joomla
6+ image : joomla:external-login
7+ volumes :
8+ - type : volume
9+ source : joomla_data
10+ target : /var/www/html
11+ - type : bind
12+ source : ${LOCAL_WORKSPACE_FOLDER:-..}/.devcontainer/joomla/logs
13+ target : /var/www/html/administrator/logs
14+ - type : bind
15+ source : ${LOCAL_WORKSPACE_FOLDER:-..}
16+ target : /workspace
17+ consistency : cached
18+ - type : bind
19+ source : ${LOCAL_WORKSPACE_FOLDER:-..}/.devcontainer/php.ini
20+ target : /usr/local/etc/php/php.ini
21+ read_only : true
22+ - type : bind
23+ source : ${LOCAL_WORKSPACE_FOLDER:-..}/.vscode
24+ target : /var/www/html/.vscode
25+ consistency : cached
26+ environment :
27+ JOOMLA_DB_HOST : ${JOOMLA_DB_HOST:-mysql}
28+ JOOMLA_DB_PASSWORD : ${JOOMLA_DB_PASSWORD:-${MYSQL_ROOT_PASSWORD:-secret}}
29+ SSL_CERT_FILE : /run/secrets/ca.pem
30+ secrets :
31+ - ca.pem
32+ depends_on :
33+ - mysql
34+ - traefik
35+ external_links :
36+ - traefik:store.dev.local
37+ - traefik:www.dev.local
38+ labels :
39+ - traefik.enable=true
40+ - traefik.http.routers.joomla.entrypoints=websecure
41+ - traefik.http.routers.joomla.rule=Host(`www.dev.local`)
342
443 keycloak :
544 build : ./keycloak
645 image : keycloak:cas
7- restart : unless-stopped
846 volumes :
947 - type : volume
1048 source : keycloak_data
@@ -17,7 +55,10 @@ services:
1755 - type : bind
1856 source : ${LOCAL_WORKSPACE_FOLDER:-..}/.devcontainer/keycloak/import
1957 target : /opt/keycloak/data/import
20- command : start --optimized --import-realm
58+ # https://www.keycloak.org/server/configuration#_starting_keycloak
59+ command :
60+ - start-dev
61+ - --import-realm
2162 environment :
2263 # https://www.keycloak.org/server/configuration
2364 KC_BOOTSTRAP_ADMIN_USERNAME : ${KC_BOOTSTRAP_ADMIN_USERNAME:-admin}
@@ -26,74 +67,73 @@ services:
2667 KC_PROXY_HEADERS : xforwarded
2768 # https://www.keycloak.org/server/all-config
2869 KC_HOSTNAME : auth.dev.local
29- KC_HTTPS_CERTIFICATE_FILE : /run/secrets/cert.pem
30- KC_HTTPS_CERTIFICATE_KEY_FILE : /run/secrets/key.pem
31- ports :
32- - 127.0.0.1:8443:8443
70+ SSL_CERT_FILE : /run/secrets/ca.pem
3371 secrets :
34- - cert.pem
35- - key.pem
36- networks :
37- default :
38- aliases :
39- - auth.dev.local
40-
41- joomla :
42- build :
43- context : ./joomla
44- image : joomla:external-login
45- volumes :
46- - type : volume
47- source : joomla_data
48- target : /var/www/html
49- - type : volume
50- source : joomla_log
51- target : /var/www/html/administrator/logs
52- - type : bind
53- source : ${LOCAL_WORKSPACE_FOLDER:-..}
54- target : /workspace
55- consistency : cached
56- - type : bind
57- source : ${LOCAL_WORKSPACE_FOLDER:-..}/.devcontainer/php.ini
58- target : /usr/local/etc/php/php.ini
59- read_only : true
60- - type : bind
61- source : ${LOCAL_WORKSPACE_FOLDER:-..}/.vscode
62- target : /var/www/html/.vscode
63- consistency : cached
64- environment :
65- JOOMLA_DB_HOST : ${JOOMLA_DB_HOST:-mysql}
66- JOOMLA_DB_PASSWORD : ${JOOMLA_DB_PASSWORD:-${MYSQL_ROOT_PASSWORD:-secret}}
67- ports :
68- - 127.0.0.1:80:80
72+ - ca.pem
6973 depends_on :
7074 - mysql
71- - keycloak
72- networks :
73- default :
74- aliases :
75- - www.dev.local
75+ - traefik
76+ external_links :
77+ - traefik:www.dev.local
78+ - traefik:auth.dev.local
79+ labels :
80+ - traefik.enable=true
81+ - traefik.http.routers.openmage.entrypoints=websecure
82+ - traefik.http.routers.openmage.rule=Host(`auth.dev.local`)
83+ - traefik.http.services.openmage.loadbalancer.server.port=8080
7684
7785 mysql :
7886 # https://hub.docker.com/_/mysql
7987 image : mysql
80- restart : unless-stopped
8188 volumes :
82- - mysql_data:/var/lib/mysql
89+ - type : volume
90+ source : mysql_data
91+ target : /var/lib/mysql
8392 environment :
8493 MYSQL_ROOT_PASSWORD : ${MYSQL_ROOT_PASSWORD:-secret}
8594 MYSQL_DATABASE : ${MYSQL_DATABASE:-joomla}
8695 ports :
8796 - 127.0.0.1:3306:3306
8897
98+ traefik :
99+ # https://hub.docker.com/_/traefik
100+ image : traefik
101+ networks :
102+ default :
103+ aliases :
104+ - auth.dev.local
105+ - www.dev.local
106+ volumes :
107+ - /var/run/docker.sock:/var/run/docker.sock:ro
108+ - ./traefik/etc:/etc/traefik
109+ command :
110+ - --api.insecure=true
111+ - --api.dashboard=true
112+ - --entrypoints.web.address=:80
113+ - --entrypoints.web.http.redirections.entryPoint.to=websecure
114+ - --entrypoints.web.http.redirections.entryPoint.scheme=https
115+ - --entrypoints.websecure.address=:443
116+ - --entrypoints.websecure.http.tls=true
117+ - --providers.docker=true
118+ - --providers.docker.exposedByDefault=false
119+ - --providers.file.directory=/etc/traefik/dynamic/
120+ ports :
121+ - 127.0.0.1:80:80
122+ - 127.0.0.1:443:443
123+ - 127.0.0.1:9090:8080
124+ secrets :
125+ - cert.pem
126+ - key.pem
127+
89128secrets :
129+ ca.pem :
130+ file : .secrets/ca.pem
90131 cert.pem :
91132 file : .secrets/cert.pem
92133 key.pem :
93134 file : .secrets/key.pem
94135
95136volumes :
96137 joomla_data : null
97- joomla_log : null
138+ mysql_data : null
98139 keycloak_data : null
99- mysql_data : null
0 commit comments