forked from cwbit/cakephp-docker
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdocker-compose.yml
123 lines (114 loc) · 3.61 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
version: '3.1'
services:
mysql:
image: 'mariadb:10.3'
container_name: mysql
working_dir: /var/www/project
volumes:
- mysql_data:/var/lib/mysql
- ../mysql-files:/var/lib/mysql-files
- ../project:/var/www/project
- ./mysql/my.cnf:/etc/mysql/my.cnf
ports:
- '${MYSQL_EXTERNAL_PORT}:3306'
restart: ${MYSQL_RESTART_POLICY:-unless-stopped}
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
postgresql:
image: 'postgres:12-alpine'
ports:
- '${POSTGRESQL_EXTERNAL_PORT}:5432'
volumes:
- pgdata:/var/lib/postgresql/data
restart: ${POSTGRESQL_RESTART_POLICY:-unless-stopped}
environment:
- POSTGRES_USER=${POSTGRESQL_USER}
- POSTGRES_PASSWORD=${POSTGRESQL_ROOT_PASSWORD}
- POSTGRES_DB=${POSTGRESQL_DATABASE}
- POSTGRES_INITDB_ARGS=${POSTGRESQL_INITDB_ARGS:-"--data-checksums"}
nginx:
image: 'nginx:alpine'
container_name: nginx
working_dir: /var/www/project
volumes:
- ../project:/var/www/project
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "${NGINX_EXTERNAL_PORT}:80"
links:
- php-fpm
restart: ${NGINX_RESTART_POLICY:-unless-stopped}
php-fpm:
build: ./php-fpm
container_name: php-fpm
working_dir: /var/www/project
volumes:
- ../project:/var/www/project
- ./php-fpm/php-ini-overrides.ini:/etc/php/8.1/fpm/conf.d/99-overrides.ini
links:
- mailhog
- mysql
restart: ${PHP_FPM_RESTART_POLICY:-unless-stopped}
mailhog:
image: 'mailhog/mailhog:latest'
container_name: mailhog
ports:
- '${MAILHOG_EXTERNAL_PORT}:8025'
restart: ${MAILHOG_RESTART_POLICY:-unless-stopped}
phpmyadmin:
image: 'phpmyadmin'
restart: always
ports:
- '${PHPMYADMIN_EXTERNAL_PORT}:80'
environment:
- PMA_HOST=${PHPMYADMIN_HOST:-mysql}
- PMA_PORT=${PHPMYADMIN_PORT:-3306}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
redis:
image: 'redis:7.2'
container_name: redis
ports:
- '${REDIS_EXTERNAL_PORT}:6379'
volumes:
- redis_data:/data
command: redis-server --appendonly yes
restart: ${REDIS_RESTART_POLICY:-unless-stopped}
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD}
- REDIS_PORT=${REDIS_INTERNAL_PORT:-6379}
- REDIS_DATABASES=${REDIS_DATABASES:-16}
- REDIS_MAXMEMORY=${REDIS_MAXMEMORY:-512mb}
- REDIS_MAXMEMORY_POLICY=${REDIS_MAXMEMORY_POLICY:-allkeys-lru}
- REDIS_TIMEOUT=${REDIS_TIMEOUT:-0}
- REDIS_AOF_ENABLED=${REDIS_AOF_ENABLED:-yes}
- REDIS_REPLICATION_MODE=${REDIS_REPLICATION_MODE:-master}
memcached:
image: 'docker.io/bitnami/memcached:1'
ports:
- '${MEMCACHED_EXTERNAL_PORT}:11211'
environment:
- MEMCACHED_CACHE_SIZE=${MEMCACHED_CACHE_SIZE:-128}
- MEMCACHED_MAX_CONNECTIONS=${MEMCACHED_MAX_CONNECTIONS:-2000}
- MEMCACHED_THREADS=${MEMCACHED_THREADS:-4}
- MEMCACHED_MAX_ITEM_SIZE=${MEMCACHED_MAX_ITEM_SIZE:-8388608}
- MEMCACHED_USERNAME=${MEMCACHED_USERNAME:-root}
- MEMCACHED_PASSWORD=${MEMCACHED_PASSWORD}
restart: ${MEMCACHED_RESTART_POLICY:-unless-stopped}
adminer:
image: 'adminer'
restart: always
ports:
- '${ADMINER_EXTERNAL_PORT}:8080'
volumes:
- '../adminer/adminer.css:/var/www/html/adminer.css'
- '../adminer/plugins-enabled:/var/www/html/plugins-enabled'
volumes:
mysql_data:
driver: local
pgdata:
driver: local
redis_data:
driver: local