-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
132 lines (131 loc) · 3.56 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
version: "3.8"
services:
sushii_worker:
build:
dockerfile: ./dockerfiles/sushii-worker/Dockerfile
context: .
logging:
driver: "json-file"
options:
max-size: 10m
max-file: "3"
labels: "production_status,service_name"
restart: unless-stopped
environment:
# blue is default, and for now just 1 deployment green later
- DEPLOYMENT_NAME=blue
- LOG_LEVEL=debug
- NODE_ENV=production
- DISCORD_TOKEN=$DISCORD_TOKEN
- APPLICATION_ID=193163942502072320
- DATABASE_URL=$DATABASE_URL
- SENTRY_DSN=$SENTRY_DSN
- DISCORD_API_PROXY_URL=http://discord_api_proxy:8080/api
- SUSHII_IMAGE_SERVER_URL=http://sushii-image-server:3000
# Tracing
- TRACING_EXPORTER_URL=http://jaeger:4318/v1/traces
- TRACING_SAMPLE_PERCENTAGE=0.01
# Notifications
- NOTIFY_WEBHOOK_URL=$NOTIFY_WEBHOOK_URL
- NOTIFY_WEBHOOK_USERNAME=$NOTIFY_WEBHOOK_USERNAME
# Increase max memory usage - should use approx 1100 MB on start
- NODE_OPTIONS=--max-old-space-size=4096
expose:
- "9090"
networks:
- sushii_net
- metrics
extra_hosts:
- "host.docker.internal:host-gateway"
labels:
- "traefik.enable=false"
- "logging=promtail"
- "logging_jobname=sushii_worker"
- "production_status=prod"
- "service_name=sushii_worker"
- "prometheus.scrape.enable=true"
- "prometheus.scrape.port=9090"
discord_api_proxy:
image: discordjs/proxy
container_name: discord_api_proxy
restart: unless-stopped
expose:
- "8080"
networks:
- sushii_net
labels:
- "traefik.enable=false"
jaeger:
image: jaegertracing/all-in-one
restart: unless-stopped
ports:
# Localhost - only available via tunnel
- "127.0.0.1:16686:16686" # The UI port
expose:
- "4317" # OTLP gRPC
- "4318" # OTLP HTTP
environment:
- SPAN_STORAGE_TYPE=badger
- BADGER_EPHEMERAL=false
- BADGER_DIRECTORY_VALUE=/badger/data
- BADGER_DIRECTORY_KEY=/badger/key
volumes:
- ~/docker/jaeger:/badger
networks:
- sushii_net
shlink:
image: shlinkio/shlink:stable
container_name: shlink
restart: unless-stopped
depends_on:
shlink_db:
condition: service_healthy
expose:
- "8080"
networks:
- sushii_net
- web
environment:
- DEFAULT_DOMAIN=a.sushii.xyz
- IS_HTTPS_ENABLED=true
- DB_DRIVER=postgres
- DB_HOST=shlink_db
- DB_PORT=5432
- DB_NAME=shlink
- DB_USER=shlink
- DB_PASSWORD=$SHLINK_DB_PASSWORD
labels:
- "traefik.docker.network=sushii-2_web"
- "traefik.http.services.shlink.loadbalancer.server.port=8080"
- "traefik.http.routers.shlink.rule=Host(`a.sushii.xyz`)"
- "traefik.http.routers.shlink.entrypoints=secure"
- "traefik.http.routers.shlink.tls.certresolver=acme"
shlink_db:
image: postgres:15.1-bullseye
container_name: shlink_db
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d shlink -U shlink"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ~/docker/shlink_postgres/15:/var/lib/postgresql/data
expose:
- "5432"
networks:
- sushii_net
environment:
- POSTGRES_USER=shlink
- POSTGRES_DB=shlink
- POSTGRES_PASSWORD=$SHLINK_DB_PASSWORD
networks:
web:
external: true
name: sushii-2_web
sushii_net:
external: true
name: sushii-2_sushii_net
metrics:
external: true
name: metrics