11services :
2+ traefik :
3+ image : traefik:v2.11
4+ container_name : " ${PROJECT_NAME_SANITISED}_traefik"
5+ command :
6+ - --providers.docker=true
7+ - --providers.docker.exposedbydefault=true
8+ - --entrypoints.web.address=:80
9+ - --api.dashboard=true
10+ ports :
11+ - " 0:80" # Dynamically bind to an available port on the host
12+ - " 8080:8080"
13+ volumes :
14+ - /var/run/docker.sock:/var/run/docker.sock:ro
15+
216 mysql :
317 image : wodby/mariadb:${MARIADB_TAG}
4- container_name : " ${PROJECT_NAME }_mariadb"
18+ container_name : " ${PROJECT_NAME_SANITISED }_mariadb"
519 stop_grace_period : 30s
620 environment :
721 MYSQL_ROOT_PASSWORD : ${DB_ROOT_PASSWORD}
@@ -10,29 +24,31 @@ services:
1024 MYSQL_PASSWORD : ${DOCKER_DATABASE_PASS}
1125 MYSQL_INNODB_LOG_BUFFER_SIZE : 50M
1226 MYSQL_INNODB_LOG_FILE_SIZE : 2047M
27+ ENVIRONMENT : ${ENVIRONMENT:-dev}
1328 volumes :
14- - ${LOCAL_CORE_PATH}/${RELATIVE_SQLDUMP_SRC}:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
15- - ${LOCAL_CORE_PATH}/${RELATIVE_SQLDATA_SRC}:/var/lib/mysql # I want to manage volumes manually.
29+ - ${LOCAL_CORE_PATH}/${RELATIVE_SQLDUMP_SRC}:/docker-entrypoint-initdb.d
30+ - ${LOCAL_CORE_PATH}/${RELATIVE_SQLDATA_SRC}:/var/lib/mysql
1631
1732 php :
33+ image : wodby/wordpress-php:${PHP_TAG}
34+ container_name : " ${PROJECT_NAME_SANITISED}_php"
1835 depends_on :
1936 - mysql
20- image : wodby/wordpress-php:${PHP_TAG}
21- container_name : " ${PROJECT_NAME}_php"
2237 environment :
2338 PHP_SENDMAIL_PATH : ' "/usr/bin/dos2unix -u | /usr/sbin/ssmtp -t -f"'
2439 SSMTP_MAILHUB : mailhog:1025
25- DB_HOST : ' mysql'
40+ DB_HOST : mysql
2641 DB_USER : ${DOCKER_DATABASE_USER}
2742 DB_PASSWORD : ${DOCKER_DATABASE_PASS}
2843 DB_NAME : ${DOCKER_DATABASE}
44+ ENVIRONMENT : ${ENVIRONMENT:-dev}
2945 volumes :
3046 - ${LOCAL_CORE_PATH}/:${VM_CORE_PATH}
3147 - ./bin/conf.d/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
3248
3349 apache :
3450 image : wodby/apache:${APACHE_TAG}
35- container_name : " ${PROJECT_NAME }_apache"
51+ container_name : " ${PROJECT_NAME_SANITISED }_apache"
3652 depends_on :
3753 - php
3854 environment :
@@ -41,52 +57,57 @@ services:
4157 APACHE_VHOST_PRESET : php
4258 APACHE_DOCUMENT_ROOT : ${VM_CORE_PATH}/${RELATIVE_DOCUMENT_ROOT}
4359 APACHE_SERVER_ROOT : ${VM_CORE_PATH}/${RELATIVE_DOCUMENT_ROOT}
60+ ENVIRONMENT : ${ENVIRONMENT:-dev}
4461 volumes :
4562 - ${LOCAL_CORE_PATH}/:${VM_CORE_PATH}
4663 labels :
47- - ' traefik.backend=apache'
48- - ' traefik.port=80'
49- - ' traefik.frontend.rule=Host:${PROJECT_NAME}.docker.localhost'
64+ - " traefik.enable=true"
65+ - " traefik.http.routers.${PROJECT_NAME}_apache.rule=Host(`${PROJECT_NAME_SANITISED}.docker.localhost`)"
5066
5167 mailhog :
5268 image : mailhog/mailhog
53- container_name : " ${PROJECT_NAME }_mailhog"
69+ container_name : " ${PROJECT_NAME_SANITISED }_mailhog"
5470 labels :
55- - ' traefik.backend=${PROJECT_NAME}_mailhog'
56- - ' traefik.port=8025'
57- - ' traefik.frontend.rule=Host:mailhog.${PROJECT_NAME}.docker.localhost'
71+ - " traefik.enable=true"
72+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_mailhog.rule=Host(`mailhog.${PROJECT_NAME_SANITISED}.docker.localhost`)"
73+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_mailhog.entrypoints=web"
74+ - " traefik.http.services.${PROJECT_NAME_SANITISED}_mailhog.loadbalancer.server.port=8025"
5875
5976 pma :
6077 image : phpmyadmin/phpmyadmin
61- container_name : " ${PROJECT_NAME}_pma"
78+ container_name : " ${PROJECT_NAME_SANITISED}_pma"
79+ command :
80+ - /bin/sh
81+ - -c
82+ - >
83+ rm -f /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini 2>/dev/null || true;
84+ rm -f /usr/local/lib/php/extensions/*/opcache.so 2>/dev/null || true;
85+ echo 'ServerName 127.0.0.1' >> /etc/apache2/apache2.conf &&
86+ apache2-foreground
6287 environment :
6388 PMA_HOST : mysql
6489 PMA_USER : root
6590 PMA_PASSWORD : ${DB_ROOT_PASSWORD}
6691 PHP_UPLOAD_MAX_FILESIZE : 1G
6792 PHP_MAX_INPUT_VARS : 1G
6893 labels :
69- - ' traefik.backend=pma'
70- - ' traefik.port=80'
71- - ' traefik.frontend.rule=Host:pma.${PROJECT_NAME}.docker.localhost'
94+ - " traefik.enable=true"
95+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_pma.rule=Host(`pma.${PROJECT_NAME_SANITISED}.docker.localhost`)"
96+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_pma.entrypoints=web"
97+ - " traefik.http.services.${PROJECT_NAME_SANITISED}_pma.loadbalancer.server.port=80"
7298
7399 portainer :
74- image : portainer/portainer-ce
75- container_name : " ${PROJECT_NAME }_portainer"
76- command : --no-auth - H unix:///var/run/docker.sock
100+ image : portainer/portainer-ce:latest
101+ container_name : " ${PROJECT_NAME_SANITISED }_portainer"
102+ command : -H unix:///var/run/docker.sock
77103 volumes :
78104 - /var/run/docker.sock:/var/run/docker.sock
105+ - portainer_data:/data
79106 labels :
80- - ' traefik.backend=portainer'
81- - ' traefik.port=9000'
82- - ' traefik.frontend.rule=Host:portainer.${PROJECT_NAME}.docker.localhost'
107+ - " traefik.enable=true"
108+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_portainer.rule=Host(`portainer.${PROJECT_NAME_SANITISED}.docker.localhost`)"
109+ - " traefik.http.routers.${PROJECT_NAME_SANITISED}_portainer.entrypoints=web"
110+ - " traefik.http.services.${PROJECT_NAME_SANITISED}_portainer.loadbalancer.server.port=9000"
83111
84- traefik :
85- image : traefik:v1.7.34-alpine
86- container_name : " ${PROJECT_NAME}_traefik"
87- command : -c /dev/null --web --docker --logLevel=INFO
88- ports :
89- - ' 80'
90- - ' 8080' # Dashboard
91- volumes :
92- - /var/run/docker.sock:/var/run/docker.sock
112+ volumes :
113+ portainer_data :
0 commit comments