-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
129 lines (122 loc) · 2.95 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
volumes:
redis_data:
name: "as_email_redis_data_01"
services:
web: &web
image: "as_email_service_app:latest"
container_name: app
build:
context: .
dockerfile: ./Dockerfile
target: prod
platforms:
- "linux/amd64"
- "linux/arm64"
# - "linux/arm/v7" # when we want to build for raspberry pi's
ports:
- "11578:8000"
command: /app/scripts/start_app.sh
restart: unless-stopped
env_file: .env
volumes:
- "${HOST_DB_DIR}:/mnt/db:z"
- "${HOST_SPOOL_ROOT}:/mnt/spool:z"
- "${HOST_MAIL_ROOT}:/mnt/mail_dirs:z"
profiles:
- prod
smtpd:
image: as_email_service_app
container_name: smtpd
ports:
- "587:587"
command: /app/scripts/start_smtpd.sh
restart: unless-stopped
env_file: .env
volumes:
- "${HOST_DB_DIR}:/mnt/db:z"
- "${HOST_SPOOL_ROOT}:/mnt/spool:z"
- "${HOST_SSL_DIR}:/mnt/ssl:ro"
profiles:
- prod
worker:
image: as_email_service_app
container_name: worker
command: /app/scripts/start_worker.sh
restart: unless-stopped
env_file: .env
volumes:
- "${HOST_DB_DIR}:/mnt/db:z"
- "${HOST_SPOOL_ROOT}:/mnt/spool:z"
- "${HOST_MAIL_ROOT}:/mnt/mail_dirs:z"
profiles:
- dev
- prod
devweb:
<<: *web
image: as_email_service_app_dev:latest
container_name: dev_app
build:
context: .
dockerfile: ./Dockerfile
target: dev
depends_on:
- mailhog
ports:
- "11578:8000"
command: wait-for-it --service redis:6379 -- /app/manage.py runserver_plus --cert-file /mnt/ssl/ssl_crt.pem --key-file /mnt/ssl/ssl_key.pem 0.0.0.0:8000
restart: unless-stopped
env_file: .env
volumes:
- ./app:/app:z
- "${HOST_DB_DIR}:/mnt/db:z"
- "${HOST_SPOOL_ROOT}:/mnt/spool:z"
- "${HOST_MAIL_ROOT}:/mnt/mail_dirs:z"
- "${HOST_SSL_DIR}:/mnt/ssl:ro"
- type: bind
source: ./pyproject.toml
target: /app/pyproject.toml
read_only: true
profiles:
- dev
devsmtpd:
<<: *web
image: as_email_service_app_dev:latest
container_name: dev_smtpd
build:
context: .
dockerfile: ./Dockerfile
target: dev
ports:
- "587:587"
command: /app/scripts/start_smtpd.sh
restart: unless-stopped
env_file: .env
volumes:
- ./app:/app:z
- "${HOST_DB_DIR}:/mnt/db:z"
- "${HOST_SPOOL_ROOT}:/mnt/spool:z"
- "${HOST_SSL_DIR}:/mnt/ssl:ro"
profiles:
- dev
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
volumes:
- "redis_data:/data"
- type: bind
source: ${PWD}/config/redis/redis.conf
target: /usr/local/etc/redis/redis.conf
expose:
- 6379
profiles:
- dev
- prod
mailhog:
image: druidfi/mailhog:1.0.1
container_name: mailhog
restart: unless-stopped
ports:
- "8025:8025"
profiles:
- dev