-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
118 lines (108 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
version: '3.2'
services:
web:
build:
context: "./web/"
command: daphne -b 127.0.0.1 -p 8000 web.asgi:application
ports:
- "127.0.0.1:8000:8000"
volumes:
- static_volume:/usr/src/app/static
environment:
DEBUG: 1
DATABASE_HOST: db
REDIS_HOST: redis
SECRET_KEY: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.idmyteam.rule=Host(`localhost`)"
- "traefik.http.routers.idmyteam.entrypoints=web"
- "traefik.http.services.idmyteam.loadbalancer.server.port=8000"
depends_on:
- db
init-web:
build:
context: "./web/"
environment:
DATABASE_HOST: db
REDIS_HOST: redis
command: python manage.py migrate
depends_on:
- db
static:
image: nginx
volumes:
- static_volume:/usr/share/nginx/html/static:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.idmyteam-static.rule=Host(`localhost`) && PathPrefix(`/static/`)"
- "traefik.http.routers.idmyteam-static.entrypoints=web"
- "traefik.http.services.idmyteam-static.loadbalancer.server.port=80"
db:
image: postgres
ports:
- "127.0.0.1:5432:5432"
environment:
POSTGRES_DATABASE: idmyteam
POSTGRES_USER: idmyteam
POSTGRES_PASSWORD: idmyteam
redis:
image: "redis:alpine"
ports:
- "127.0.0.1:6379:6379"
entrypoint: redis-server --appendonly yes
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "127.0.0.1:16686:16686"
- "127.0.0.1:14268:14268"
environment:
JAEGER_REPORTER_LOG_SPANS: "true"
command:
- "--log-level=debug"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.8.1
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.type=single-node"
- "127.0.0.1:9200:9200"
traefik:
image: "traefik:v2.2"
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--tracing=true"
- "--tracing.serviceName=traefik"
- "--tracing.jaeger.samplingServerURL=http://jaeger:5778/sampling"
- "--tracing.jaeger.collector.endpoint=http://jaeger:14268/api/traces?format=zipkin.thrift"
- "--tracing.jaeger.gen128Bit"
- "--tracing.jaeger.propagation=b3"
ports:
- "80:80"
- "8080:8080"
depends_on:
- jaeger
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
test-web:
container_name: test-web
build:
context: "."
dockerfile: "Dockerfile.test"
depends_on:
- db
- redis
environment:
- "DEBUG=1"
- "DATABASE_HOST=db"
- "REDIS_HOST=redis"
- "SECRET_KEY=123"
- "DJANGO_SETTINGS_MODULE=web.settings"
volumes:
- ".:/usr/src/app"
command: ["pytest", "/usr/src/app/web/", "--cov=./", "--cov-report=xml"]
volumes:
static_volume: