Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
107 lines (101 loc) · 2.52 KB
/
Copy pathdocker-compose.yml
File metadata and controls
107 lines (101 loc) · 2.52 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
services:
app:
image: ${APP_IMAGE:-renzzle/github-action:latest}
ports:
- "9001:9001"
env_file:
- .env
dns:
- 8.8.8.8
- 1.1.1.1
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
volumes:
- app-logs:/app/logs
- ./secrets/google-play-service-account.json:/app/secrets/google-play-service-account.json:ro
- ./secrets/apple-iap-key.p8:/app/secrets/apple-iap-key.p8:ro
networks:
- app-network
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
caddy:
image: caddy:2-alpine
ports:
- "${HTTP_HOST_PORT:-80}:80"
- "${HTTPS_HOST_PORT:-443}:443"
environment:
ACME_EMAIL: ${ACME_EMAIL}
ACTUATOR_TOKEN: ${ACTUATOR_TOKEN}
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy/origin:/etc/caddy/origin:ro
- caddy-data:/data
- caddy-config:/config
networks:
- app-network
depends_on:
- app
db:
container_name: mysql
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- "${MYSQL_BIND_IP:-0.0.0.0}:${MYSQL_HOST_PORT:-3306}:3306"
networks:
- app-network
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -uroot -p$$MYSQL_ROOT_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
redis:
container_name: redis
image: redis:7.0.12
volumes:
- ./redis-data:/data
ports:
- "${REDIS_BIND_IP:-127.0.0.1}:${REDIS_HOST_PORT:-16379}:6379"
networks:
- app-network
command: redis-server --requirepass ${REDIS_PASSWORD}
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
promtail:
profiles:
- observability
image: grafana/promtail:2.9.4
entrypoint:
- /bin/sh
- -c
volumes:
- app-logs:/var/log/app
- ./promtail/config.yml:/etc/promtail/config.yml
environment:
LOKI_TOKEN: ${LOKI_TOKEN}
command:
- |
mkdir -p /run/promtail
printf '%s' "$$LOKI_TOKEN" > /run/promtail/token
exec /usr/bin/promtail -config.file=/etc/promtail/config.yml
networks:
- app-network
depends_on:
- app
networks:
app-network:
driver: bridge
volumes:
app-logs:
caddy-data:
caddy-config: