-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.database.external.yml
More file actions
61 lines (58 loc) · 2.45 KB
/
Copy pathdocker-compose.database.external.yml
File metadata and controls
61 lines (58 loc) · 2.45 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
# Tryb "zewnętrzna baza danych" - alternatywa dla docker-compose.database.yml.
#
# Ten plik jest ładowany przez docker-compose.yml gdy zmienna BPP_DATABASE_COMPOSE
# w repo-lokalnym .env wskazuje na ten plik. Ustawia to interaktywnie
# scripts/init-configs.sh po wybraniu trybu zewnętrznej bazy.
#
# W tym trybie kontener 'dbserver' NIE jest prawdziwym PostgreSQL - to lekki
# sentinel (postgres:<major>-alpine w wersji dopasowanej do zewnętrznej bazy),
# który:
#
# 1. Istnieje po to, żeby 'depends_on: dbserver' w authserver/appserver
# nadal działało.
# 2. Jego healthcheck sonduje prawdziwą, zewnętrzną bazę przez pg_isready,
# więc serwisy zależne startują dopiero gdy zewnętrzna baza jest
# faktycznie dostępna.
# 3. Udostępnia psql/pg_dump/pg_restore w tej samej wersji co serwer,
# dzięki czemu 'make db-backup', 'make dbshell-psql' itp. działają bez
# zmian w targetach.
#
# Aplikacja (appserver, authserver, workerserver-*) łączy się BEZPOŚREDNIO
# z zewnętrzną bazą przez DJANGO_BPP_DB_HOST z .env - sentinel nie jest
# pośrednikiem, tylko wartownikiem.
x-logging: &default-logging
driver: "local"
options:
max-size: "${LOG_MAX_SIZE:-150m}"
max-file: "${LOG_MAX_FILE:-5}"
services:
dbserver:
logging: *default-logging
# Major Postgresa: DJANGO_BPP_POSTGRESQL_VERSION_MAJOR (nowa nazwa) z
# fallbackiem na DJANGO_BPP_POSTGRESQL_DB_VERSION (stara, sprzed rename
# w 2026-04-18). Default 17 jesli .env nie ma zadnej z nich.
image: postgres:${DJANGO_BPP_POSTGRESQL_VERSION_MAJOR:-${DJANGO_BPP_POSTGRESQL_DB_VERSION:-17}}-alpine
restart: always
env_file: ${BPP_CONFIGS_DIR}/.env
environment:
PGPASSWORD: ${DJANGO_BPP_DB_PASSWORD}
volumes:
# Katalog na backupy, bind-mount z hosta (tak samo jak w trybie
# lokalnym) - pg_dump pisze bezposrednio tutaj, bez drogi przez /tmp.
- ${DJANGO_BPP_HOST_BACKUP_DIR}:/backup
command: ["sleep", "infinity"]
healthcheck:
test:
- CMD-SHELL
- pg_isready -h "$$DJANGO_BPP_DB_HOST" -p "$$DJANGO_BPP_DB_PORT" -U "$$DJANGO_BPP_DB_USER" -d "$$DJANGO_BPP_DB_NAME"
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
# Sentinel w trybie external nie obsluguje ruchu bazy, ale symetria z
# trybem local - ta sama zmienna, ten sam limit.
deploy:
resources:
limits:
memory: ${DBSERVER_MEM_LIMIT:-2g}
cpus: "${DBSERVER_CPU_LIMIT:-2.0}"