-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
126 lines (115 loc) · 2.91 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
version: '3'
services:
api:
build: './api'
environment:
ELASTIC_HOST: http://elastic
ELASTIC_PORT: 9200
ELASTIC_USER: elastic
ELASTIC_PASSWORD: $ELASTIC_PASSWORD
REDIS_HOST: redis://redis
REDIS_PORT: 6379
REDIS_PASSWORD: $REDIS_PASSWORD
WAIT_HOSTS: elastic:9200, redis:6379
depends_on:
- elastic
- redis
volumes:
- './protobufs:/app/protobufs'
auth:
build: './auth'
environment:
SECRET_KEY: $FLASK_SECRET_KEY
FLASK_APP: main:app
DB_HOST: auth_db
DB_PASSWORD: ${AUTH_DB_PASSWORD}
DB_USER: auth_app
DB_NAME: auth_database
SUPERUSER_PASSWORD: ${SUPERUSER_PASSWORD}
VK_CLIENT_SECRET: ${VK_CLIENT_SECRET}
YANDEX_CLIENT_SECRET: ${YANDEX_CLIENT_SECRET}
MAIL_CLIENT_SECRET: ${MAIL_CLIENT_SECRET}
DB_PORT: 4321
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: $REDIS_PASSWORD
HOST: auth
DEBUG: ${AUTH_DEBUG}
WAIT_HOSTS: auth_db:4321, redis:6379
TRACE_SAMPLING_FREQUENCY: 1
volumes:
- './auth/src/migrations:/app/migrations'
- './protobufs:/app/protobufs'
depends_on:
- auth_db
- redis
tracing:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686"
nginx:
image: nginx:1.21-alpine
volumes:
- './nginx/nginx.conf:/etc/nginx/nginx.conf:ro'
depends_on:
- api
ports:
- "80:80"
restart: always
auth_db:
build: './auth_db'
environment:
POSTGRES_USER: auth_app
POSTGRES_PASSWORD: ${AUTH_DB_PASSWORD}
POSTGRES_DB: auth_database
volumes:
- 'auth_db_data:/var/lib/postgres/data'
command: -p 4321
content_db:
build: './content_db'
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: ${CONTENT_DB_PASSWORD}
POSTGRES_DB: movies_database
volumes:
- 'content_db_data:/var/lib/postgres/data'
elastic:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
environment:
discovery.type: single-node
ES_JAVA_OPTS: -Xms200m -Xmx200m
xpack.security.http.ssl.enabled: 'false'
ELASTIC_PASSWORD: $ELASTIC_PASSWORD
expose:
- 9200
volumes:
- 'elastic_data:/usr/share/elasticsearch/data'
redis:
image: redis:6.2.6
command: redis-server --requirepass $REDIS_PASSWORD
expose:
- 6379
volumes:
- redis_data:/var/lib/redis
etl:
build: './etl'
environment:
DB_USER: app
DB_PASSWORD: ${CONTENT_DB_PASSWORD}
DB_NAME: movies_database
DB_HOST: content_db
DB_PORT: ${CONTENT_DB_PORT}
ELASTIC_HOST: http://elastic:9200
ELASTIC_USER: elastic
ELASTIC_PASSWORD: $ELASTIC_PASSWORD
WAIT_HOSTS: elastic:9200, content_db:5432
volumes:
- $STATE_PATH:/app/state
depends_on:
- content_db
- elastic
volumes:
content_db_data:
auth_db_data:
elastic_data:
redis_data: