-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
116 lines (111 loc) · 3.25 KB
/
docker-compose.yaml
File metadata and controls
116 lines (111 loc) · 3.25 KB
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
services:
traefik:
depends_on:
log_api:
condition: service_healthy
build:
dockerfile: Dockerfile
context: traefik
image: "nmrih_traefik:latest"
container_name: nmrih_traefik
restart: on-failure
command:
- "--log.level=WARN"
- "--api.dashboard=false"
- "--api.insecure=false"
- "--entryPoints.http.address=:80"
- "--entryPoints.https.address=:443"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--certificatesResolvers.myresolver.acme.httpChallenge.entryPoint=http"
environment:
- TRAEFIK_ACME_EMAIL=${TRAEFIK_ACME_EMAIL}
- TRAEFIK_ACME_STORAGE=${TRAEFIK_ACME_STORAGE}
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./traefik/acme:/etc/traefik/acme"
networks:
- traefik-net
redis:
container_name: nmrih_redis
image: redis:8.2.0-alpine
command: ["redis-server", "--appendonly", "yes", "--requirepass", "${REDIS_PASSWORD}", "--port", "7379"]
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD}
ports:
- "7379:7379"
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "-p", "7379", "ping"]
interval: 5s
timeout: 3s
retries: 5
networks:
- traefik-net
log_api:
container_name: nmrih_log_api
image: "nmrih_log_api:latest"
build:
dockerfile: Dockerfile
context: log_api
healthcheck:
test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:8190/health-check | grep 200 || exit 1"]
timeout: 3s
retries: 3
start_period: 3s
depends_on:
redis:
condition: service_healthy
volumes:
- shared_data:/data
- ./logs:/logs
ports:
- "8190"
environment:
- ENV=prod
- GIN_MODE=release
- PORT=8190
- SERVER_ADDR=rulat-bot.duckdns.org
- SERVER_PORT=27015
- CSV_STORAGE_DIRECTORY=/data
- LOGS_STORAGE_DIRECTORY=/logs/
- LOGS_FILE_PATTERN=l*.log
- IP_INFO_API_TOKEN=${IP_INFO_API_TOKEN}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- REDIS_ADDR=redis:7379
- LOG_GRAPH_HANDLER_CACHE_TTL_MINUTES=5
- LOG_GRAPH_HANDLER_CACHE_TIMEOUT_SECONDS=10
networks:
- traefik-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.log_api-secure.rule=Host(`api.rulat-bot.duckdns.org`)"
- "traefik.http.routers.log_api-secure.entryPoints=https"
- "traefik.http.routers.log_api-secure.tls=true"
- "traefik.http.routers.log_api-secure.tls.certresolver=myresolver"
log_frontend:
container_name: nmrih_log_frontend
image: nmrih_log_frontend:latest
build:
dockerfile: Dockerfile
context: log_frontend
ports:
- "8191"
networks:
- traefik-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.log_frontend-secure.tls=true"
- "traefik.http.routers.log_frontend-secure.rule=Host(`rulat-bot.duckdns.org`)"
- "traefik.http.routers.log_frontend-secure.entryPoints=https"
- "traefik.http.routers.log_frontend-secure.tls.certresolver=myresolver"
volumes:
shared_data:
redis-data:
networks:
traefik-net:
driver: bridge