-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
148 lines (133 loc) · 3.78 KB
/
docker-compose.yaml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
version: '3.7'
services:
# Development related
test-sqlite:
environment:
- PYTHONDONTWRITEBYTECODE=1
env_file: environment2.env
build:
dockerfile: docker/app/Dockerfile
context: .
entrypoint: pytest
volumes:
- ./OperatorsBackend:/opt/code
test-postgresql:
env_file: environment.env
environment:
- PYTHONDONTWRITEBYTECODE=1
build:
dockerfile: docker/app/Dockerfile
context: .
entrypoint: pytest
depends_on:
- db
- mongodb
- rabbitmq
volumes:
- ./OperatorsBackend:/opt/code
# Pipeline actions
test:
env_file: environment.env
environment:
- PYTHONDONTWRITEBYTECODE=1
build:
dockerfile: docker/app/Dockerfile
context: .
entrypoint: pytest
depends_on:
- db
- mongodb
- rabbitmq
static-analysis:
build:
dockerfile: docker/app/Dockerfile
context: .
entrypoint: flake8
db:
env_file: environment.env
environment:
- PYTHONDONTWRITEBYTECODE=1
build:
context: .
dockerfile: ./docker/db/Dockerfile
args:
# These values should be in sync with environment
# for development. If you change them, you'll
# need to rebuild the container
- POSTGRES_DB=operators
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=somepassword
- POSTGRES_PORT=5432
# Producion related
# Note that db-debug is the same as db, but it exposes locally
# port 5432 to access PostgreSQL
db-debug:
build:
context: .
dockerfile: ./docker/db/Dockerfile
args:
# These values should be in sync with environment
# for development. If you change them, you'll
# need to rebuild the container
- POSTGRES_DB=operator
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=somepassword
- POSTGRES_PORT=5432
ports:
- "5432:5432"
mongodb:
image: mongo:latest
restart: always
env_file: environment.env
environment:
MONGO_INITDB_ROOT_USERNAME: mongo
MONGO_INITDB_ROOT_PASSWORD: somepassword
MONGODB_DB: operators
MONGODB_USER: mongo
MONGODB_PASSWORD: somepassword
ports:
- "27017:27017"
volumes:
- ./docker/mongo/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh
server: &server
env_file: environment.env
image: operators_server
build:
context: .
dockerfile: docker/app/Dockerfile
ports:
- "7001:8000"
depends_on:
- db
- mongodb
- rabbitmq
- celery_worker
- celery_beat
# Rabbit message queue
rabbitmq:
image: rabbitmq:3.8-alpine
# Celery Worker
celery_worker:
env_file: environment.env
image: celery_terminal
build:
context: .
dockerfile: docker/celery/worker/Dockerfile
ports: []
depends_on:
- rabbitmq
- db
- mongodb
# Celery Beat
celery_beat:
env_file: environment.env
image: celery_beat
build:
context: .
dockerfile: docker/celery/beat/Dockerfile
ports: []
depends_on:
- rabbitmq
- db
- mongodb
- celery_worker