47 lines
1.8 KiB
YAML
47 lines
1.8 KiB
YAML
# PostgreSQL für die lokale Entwicklung — siehe AUSBAUSTUFEN.md 4.10.
|
|
#
|
|
# Nur für die Entwicklung gedacht: feste, schwache Zugangsdaten, Port offen
|
|
# auf localhost. Für den Betrieb ungeeignet.
|
|
#
|
|
# docker compose -f docker-compose.dev.yml up -d # starten
|
|
# docker compose -f docker-compose.dev.yml down # stoppen (Daten bleiben)
|
|
# docker compose -f docker-compose.dev.yml down -v # stoppen und Daten löschen
|
|
#
|
|
# Munin damit starten:
|
|
# DB_DRIVER=postgres \
|
|
# DATABASE_URL='postgres://munin:munin@localhost:5432/munin?sslmode=disable' \
|
|
# go run .
|
|
#
|
|
# Tests gegen PostgreSQL (eigene Datenbank munin_test). Store, Export und
|
|
# Import laufen dann gegen PostgreSQL, alles andere wie immer gegen SQLite:
|
|
# MUNIN_TEST_PG='postgres://munin:munin@localhost:5432/munin_test?sslmode=disable' \
|
|
# go test ./...
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:18
|
|
# Munin braucht je Workspace bis zu 3 Verbindungen (siehe
|
|
# internal/store/backend_postgres.go). 200 reichen für rund 60 Workspaces.
|
|
command: postgres -c max_connections=200
|
|
environment:
|
|
POSTGRES_USER: munin
|
|
POSTGRES_PASSWORD: munin
|
|
POSTGRES_DB: munin
|
|
# Sortierung "C": Text wird Byte für Byte sortiert, genau wie in SQLite.
|
|
# Ohne das stünde z.B. "a-c" vor "ab". Wirkt nur beim allerersten Start
|
|
# (leeres Volume).
|
|
POSTGRES_INITDB_ARGS: "--locale=C --encoding=UTF8"
|
|
ports:
|
|
- "127.0.0.1:5432:5432"
|
|
volumes:
|
|
- munin-pgdata:/var/lib/postgresql
|
|
# Legt beim allerersten Start die Datenbank munin_test für die Tests an.
|
|
- ./scripts/postgres-dev-init.sql:/docker-entrypoint-initdb.d/munin-init.sql:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U munin -d munin"]
|
|
interval: 2s
|
|
timeout: 3s
|
|
retries: 15
|
|
|
|
volumes:
|
|
munin-pgdata:
|