-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdocker-compose.yml
128 lines (121 loc) · 2.81 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
version: "3.7"
services:
mysql:
image: yobasystems/alpine-mariadb
env_file: .env
environment:
MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD}
MYSQL_DATABASE: ${DATABASE_NAME}
MYSQL_USER: ${DATABASE_USER}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
volumes:
- mysqldata:/var/lib/mysql
- ./config/mariadb/backups:/backups
expose:
- 3306
restart: always
networks:
back:
ipv4_address: ${NETWORK_BASE}.10
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "${PHPMYADMIN_PORT}:80"
environment:
PMA_HOST: "mysql"
PMA_PORT: 3306
networks:
back:
ipv4_address: ${NETWORK_BASE}.12
cache:
container_name: redis
image: redis:alpine
hostname: redis
command: redis-server --requirepass ${REDIS_PASS}
ports:
- "${REDIS_PORT}:6379"
networks:
back:
ipv4_address: ${NETWORK_BASE}.7
php:
container_name: php
build:
context: ./config/php
args:
ENVIROMENT: ${ENVIROMENT}
WEB_USER: ${WEB_USER}
U_ID: ${U_ID}
MAGE_DOMAIN: ${MAGE_DOMAIN}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASS: ${SMTP_PASS}
volumes:
- sock:/sock
# - ./config/php/ext-xdebug.ini:/usr/local/etc/php/conf.d/ext-xdebug.ini
- ./src:/home/${WEB_USER}/html
depends_on:
- mysql
- cache
networks:
back:
ipv4_address: ${NETWORK_BASE}.18
web:
container_name: web
build:
context: ./config/nginx
args:
WEB_USER: ${WEB_USER}
U_ID: ${U_ID}
PUBLIC_DIR: ${PUBLIC_DIR}
ports:
- "80:80"
- "443:443"
volumes:
- ./config/nginx/sites-enabled:/etc/nginx/sites-enabled
- ./config/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./config/nginx/ssl:/etc/nginx/ssl
- certbot-etc:/etc/letsencrypt
- certbot-var:/var/lib/letsencrypt
- ./config/dhparam:/etc/ssl/certs
- sock:/sock
- ./src:/home/${WEB_USER}/html
depends_on:
- php
networks:
back:
ipv4_address: ${NETWORK_BASE}.3
certbot:
container_name: certbot
image: certbot/certbot
volumes:
- certbot-etc:/etc/letsencrypt
- certbot-var:/var/lib/letsencrypt
- ./src:/home/${WEB_USER}/html
depends_on:
- web
command:
[
"certonly",
"--webroot",
"--webroot-path=/home/${WEB_USER}/html",
"--email",
"${ADMIN_EMAIL}",
"--agree-tos",
"--no-eff-email",
"--force-renewal",
"-d",
"${MAGE_DOMAIN}",
]
volumes:
certbot-etc:
certbot-var:
mysqldata:
sock:
networks:
back:
driver: bridge
ipam:
driver: default
config:
- subnet: ${NETWORK_BASE}.0/24