-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
148 lines (139 loc) · 3.56 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
142
143
144
145
146
147
148
version: "3.9"
services:
traefik:
image: traefik:2.6
container_name: ${APP_NAME}-traefik
restart: unless-stopped
command:
- --accesslog
- --api.insecure=true
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker=true
- --providers.file.directory=/configuration/
- --providers.file.watch=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./docker/traefik/config:/configuration/
- ./docker/traefik/certs:/etc/certs:ro
ports:
- "80:80"
- "443:443"
- "8080:8080"
networks:
- proxy
mysql:
image: mariadb:10.4
container_name: ${APP_NAME}-mysql
restart: unless-stopped
ports:
- "3306:3306"
command:
- --default_authentication_plugin=mysql_native_password,
- --character-set-server=utf8mb4,
- --collation-server=utf8mb4_unicode_ci
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
healthcheck:
test: mysqladmin ping -h mysql -u root --password=$$MYSQL_ROOT_PASSWORD
timeout: 60s
interval: 10s
retries: 60
networks:
- proxy
wordpress:
container_name: ${APP_NAME}-wordpress
build:
context: ./docker/php/apache
restart: unless-stopped
environment:
- HOST_NAME=${HOST_NAME}
- DB_HOST=mysql
- DB_NAME=${DB_NAME}
- DB_USER=root
- DB_PASSWORD=${DB_ROOT_PASSWORD}
- DB_PREFIX=wpld_
- WP_ENV=development
- WP_HOME=https://${HOST_NAME}
- WP_SITEURL=https://${HOST_NAME}/wp
volumes:
- ./docker/php/conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./app:/var/www/html
depends_on:
- mysql
links:
- mysql
labels:
- traefik.enable=true
- traefik.http.routers.wordpress-http.entrypoints=web
- traefik.http.routers.wordpress-http.rule=Host(`${HOST_NAME}`)
- traefik.http.routers.wordpress-http.middlewares=wordpress-https
- traefik.http.middlewares.wordpress-https.redirectscheme.scheme=https
- traefik.http.routers.wordpress.entrypoints=websecure
- traefik.http.routers.wordpress.rule=Host(`${HOST_NAME}`)
- traefik.http.routers.wordpress.tls=true
networks:
- proxy
pma:
image: phpmyadmin/phpmyadmin
container_name: ${APP_NAME}-phpmyadmin
restart: unless-stopped
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
ports:
- "8090:80"
links:
- mysql
networks:
- proxy
mailhog:
image: mailhog/mailhog
container_name: ${APP_NAME}-mail
restart: unless-stopped
logging:
driver: 'none'
ports:
- "1025:1025"
- "8025:8025"
networks:
- proxy
composer:
image: composer
container_name: ${APP_NAME}-composer
restart: "no"
working_dir: /var/www/html
volumes:
- ./app:/var/www/html
networks:
- proxy
wpcli:
image: wordpress:cli
container_name: ${APP_NAME}-wpcli
restart: "no"
volumes:
- ./docker/php/conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./app:/var/www/html
environment:
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=${DB_ROOT_PASSWORD}
- WORDPRESS_TABLE_PREFIX=wpld_
depends_on:
- mysql
- wordpress
links:
- mysql
entrypoint: wp
command: "--info"
networks:
- proxy
volumes:
db_data:
name: ${APP_NAME}-db_data
networks:
proxy:
name: ${APP_NAME}-proxy