-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.prod.yml
105 lines (97 loc) · 2.73 KB
/
docker-compose.prod.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
version: "3.6"
services:
# Authtentication Service
auth_service:
build: ./auth-service
container_name: "auth_service"
environment:
- MONGO_LOCAL_CONN_URL=mongodb://production:secret_password@auth_db:27017/?authSource=admin&readPreference=primary&ssl=false
- JWT_SECRET=jwt-secret
- PORT=3000
- WAIT_HOSTS=auth_db:27017
- WAIT_HOSTS_TIMEOUT=100
- WAIT_BEFORE_HOSTS=5
- SWAGGER_USERNAME=admin
- SWAGGER_PASSWORD=secret_password
- SENDGRID_API_KEY=sendgrid_key
links:
- auth_db
depends_on:
- auth_db
auth_db:
image: mongo
container_name: "auth_db"
environment:
- MONGO_INITDB_DATABASE=authdb
- MONGO_INITDB_ROOT_USERNAME=production
- MONGO_INITDB_ROOT_PASSWORD=secret_password
volumes:
- ./.docker/mongo-volumes/auth_db:/data/db
restart: unless-stopped
# Holds the Informations of the Files hosted on the Storage Service
color_service:
build: ./color-service
container_name: "color_service"
environment:
- MONGO_LOCAL_CONN_URL=mongodb://production:secret_password@color_db:27017/?authSource=admin&readPreference=primary&ssl=false
- PORT=3000
- AUTH_SERVER_HOST=auth_service:3000
- WAIT_HOSTS=color_db:27017
- WAIT_HOSTS_TIMEOUT=100
- WAIT_BEFORE_HOSTS=5
- SWAGGER_USERNAME=admin
- SWAGGER_PASSWORD=secret_password
links:
- color_db
depends_on:
- color_db
color_db:
image: mongo
container_name: "color_db"
environment:
- MONGO_INITDB_DATABASE=colordb
- MONGO_INITDB_ROOT_USERNAME=production
- MONGO_INITDB_ROOT_PASSWORD=secret_password
volumes:
- ./.docker/mongo-volumes/color_db:/data/db
restart: unless-stopped
# The Gateway for all API Containers
gateway:
build: ./gateway
container_name: "gateway"
links:
- auth_service
- color_service
environment:
- WAIT_HOSTS=color_service:3000, auth_service:3000
- WAIT_HOSTS_TIMEOUT=160
- WAIT_BEFORE_HOSTS=10
#### NGINX ####
frontend:
build:
context: ./hexpalette
args:
- API_URL=api.hexpalette.com/api
client:
image: nginx:1.16-alpine
container_name: client
volumes:
- ./nginx/frontend/default.conf:/etc/nginx/conf.d/default.conf
reverse-proxy:
image: valian/docker-nginx-auto-ssl:1.0.0
container_name: reverse-proxy
restart: on-failure
ports:
- 80:80
- 443:443
volumes:
- ./.ssl-data:/etc/resty-auto-ssl
environment:
ALLOWED_DOMAINS: "(api.)?hexpalette.com"
SITES: "hexpalette.com=client:80;api.hexpalette.com=gateway:8080;"
FORCE_HTTPS: "true"
depends_on:
- client
- gateway
volumes:
.ssl-data: