-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
executable file
·120 lines (118 loc) · 2.79 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
version: '3.7'
services:
# nginx - web server
nginx:
build:
context: ./docker-config/nginx
dockerfile: ./Dockerfile
env_file: &env
- ./cms/.env
init: true
ports:
- "8001:80"
volumes:
- cpresources:/var/www/project/cms/web/cpresources
- ./cms/web:/var/www/project/cms/web:cached
# php - run php-fpm
php:
build: &php-build
context: ./docker-config/php-prod-craft
dockerfile: ./Dockerfile
depends_on:
- "mysql"
- "postgres"
- "redis"
env_file:
*env
expose:
- "9000"
init: true
volumes: &php-volumes
# Change the path below to map to your local plugin repositories
- /Users/michtio/dev/craft-plugins:/Users/michtio/dev/craft-plugins
- cpresources:/var/www/project/cms/web/cpresources
- storage:/var/www/project/cms/storage
- ./cms:/var/www/project/cms:cached
- ./cms/vendor:/var/www/project/cms/vendor:delegated
- ./cms/storage/logs:/var/www/project/cms/storage/logs:delegated
- ./cms/storage/runtime/compiled_templates:/var/www/project/cms/storage/runtime/compiled_templates:delegated
# php - run php-fpm with xdebug
php_xdebug:
build:
context: ./docker-config/php-dev-craft
dockerfile: ./Dockerfile
depends_on:
- "php"
env_file:
*env
expose:
- "9000"
init: true
user: www-data
volumes:
*php-volumes
# postgres - database
postgres:
build:
context: ./docker-config/postgres
dockerfile: ./Dockerfile
env_file:
*env
environment:
POSTGRES_DB: project
POSTGRES_USER: project
POSTGRES_PASSWORD: project
init: true
ports:
- "6432:5432"
volumes:
- postgres-db-data:/usr/local/pgsql/data
- ./postgres-db-seed/:/docker-entrypoint-initdb.d
# queue - runs queue jobs via php craft queue/listen
queue:
build:
*php-build
command: /var/www/project/run_queue.sh
depends_on:
- "php"
env_file:
*env
expose:
- "9001"
init: true
user: www-data
volumes:
*php-volumes
# mysql - database
mysql:
build:
context: ./docker-config/mysql
dockerfile: ./Dockerfile
cap_add:
- SYS_NICE # CAP_SYS_NICE
env_file:
*env
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
init: true
ports:
- "5306:3306"
volumes:
- mysql-db-data:/var/lib/mysql
- ./mysql-db-seed:/docker-entrypoint-initdb.d
# redis - key/value database for caching & php sessions
redis:
build:
context: ./docker-config/redis
dockerfile: ./Dockerfile
expose:
- "6379"
init: true
volumes:
mysql-db-data:
postgres-db-data:
cpresources:
storage: