bifroest/docker-compose.yml
2026-10-28 10:02:54 +01:00

58 lines
1.9 KiB
YAML

# PostgreSQL 18 zum Entwickeln und Testen (Daten im Volume aiw-postgres18).
#
# docker compose up -d # starten
# docker compose down # anhalten, Daten bleiben
# docker compose down -v # anhalten und Daten löschen
#
# Datenbanken: aiw (für Web und Worker) und die Verwaltungsdatenbank postgres
# (für die Tests; jeder Testlauf legt dort eine eigene an und räumt sie ab).
# Port 55433, damit es nicht mit Hugin (55432) kollidiert.
#
# Ab PostgreSQL 18 liegen die Daten unter /var/lib/postgresql/18/docker; das Volume hängt deshalb an
# /var/lib/postgresql (nicht mehr …/data). Eine neue Hauptversion startet nicht mit den Daten der alten:
# lokal mit scripts/dev.sh --reset neu anfangen oder vorher pg_dumpall. Das frühere Volume aiw-postgres
# (PostgreSQL 17) bleibt liegen, bis man es löscht: docker volume rm ai-workspace_aiw-postgres
name: ai-workspace
services:
postgres:
image: postgres:18.6
environment:
POSTGRES_USER: aiw
POSTGRES_PASSWORD: aiw
POSTGRES_DB: aiw
ports:
- "127.0.0.1:55433:5432"
volumes:
- aiw-postgres18:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U aiw -d aiw"]
interval: 2s
timeout: 3s
retries: 30
restart: unless-stopped
# Oracle zum Testen von db-mcp-oracle (nur mit --profile oracle):
# docker compose --profile oracle up -d oracle
# Oracle Database 23ai Free, Pluggable Database FREEPDB1, Admin: system / aiw.
# In der Arbeit läuft 19c: Tests und Treiber nutzen nur SQL, das es in 19c schon gibt.
oracle:
image: gvenzl/oracle-free:23-slim-faststart
profiles: ["oracle"]
environment:
ORACLE_PASSWORD: aiw
ports:
- "127.0.0.1:55434:1521"
volumes:
- aiw-oracle:/opt/oracle/oradata
healthcheck:
test: ["CMD", "healthcheck.sh"]
interval: 5s
timeout: 5s
retries: 60
restart: unless-stopped
volumes:
aiw-postgres18:
aiw-oracle: