-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
76 lines (72 loc) · 2.5 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
# Версия Docker API
version: '3.7'
# Сервисы которые мы будем запускать
services:
# postgres db
db:
# Образ на основе которого он будет запускаться
image: postgres:13.6-alpine
# volumes - магическая вещь, которая создает некоторое устройство в
# рамках Docker и монтирует его в директорию /var/lib/postgresql/data
# volumes:
# - postgres-data:/var/lib/postgresql/data
# Переменные окружения
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 1234
POSTGRES_DB: flask_app
# Открыть снаружи порт 5432
expose:
- 5432
# elasticsearch
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.3
environment:
- "discovery.type=single-node"
ports:
- 9200:9200
- 9300:9300
# redis
redis-server:
image: redis/redis-stack-server:latest
ports:
- 6379:6379
# flask_app
flask_app:
# Указываем имя для создаваемого контейнера
image: kuznetsov1024/flask_app:latest
# Говорим что его надо будет собрать - в качестве контекста
# передаем текущую директорию - в ней лежит Dockerfile
build: .
# Переменные окружения
environment:
SECRET_KEY: 1234
APP_SETTINGS: config.DevelopmentConfig
DATABASE_URL: postgresql://postgres:1234@db:5432/flask_app
ELASTICSEARCH_URL: http://elasticsearch:9200
REDIS_URL: redis://redis-server:6379/0
# Монтируем локальную директорию . в директорию
# внутри контейнера /opt/flask_app
volumes:
- .:/opt/flask_app
# Говорим пробросить порт 8000 хоста в порт 8000 контейнера
ports:
- 8000:5000
# Зависит от сервиса db - запускать после него
depends_on:
- db
- elasticsearch
- redis-server
# redis worker
worker:
image: flask_app_flask_app:latest
environment:
APP_SETTINGS: config.DevelopmentConfig
DATABASE_URL: postgresql://postgres:1234@db:5432/flask_app
depends_on:
- db
- redis-server
command: rq worker --url redis://redis-server:6379/0 flask_app-tasks
links:
- db
- redis-server