55 lines
1.8 KiB
YAML
Executable File
55 lines
1.8 KiB
YAML
Executable File
# ITSM-Deployment (Rust-Version).
|
|
#
|
|
# Aufsetzen:
|
|
# 1. Repo nach /docker/itsm/src klonen (oder Build-Kontext anpassen)
|
|
# 2. .env mit POSTGRES_PASSWORD anlegen
|
|
# 3. docker compose up -d --build
|
|
#
|
|
# Update: git pull im Quell-Checkout, dann docker compose up -d --build.
|
|
# Anders als frueher wird beim Container-NEUSTART kein Code mehr aus dem
|
|
# Git gezogen -- ein Neustart startet exakt das gebaute Image (reproduzierbar,
|
|
# kein ungetesteter main-Stand in Prod).
|
|
services:
|
|
postgres:
|
|
# Bewusst bei postgres:16 bleiben: das bestehende pgdata-Verzeichnis ist
|
|
# mit 16 initialisiert; ein Major-Upgrade braucht pg_upgrade/dump+restore.
|
|
image: postgres:16-alpine
|
|
container_name: itsm_postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: itsm
|
|
POSTGRES_USER: itsm
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD muss gesetzt sein}
|
|
volumes:
|
|
- ./pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U itsm -d itsm"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
itsm:
|
|
build:
|
|
context: ../
|
|
dockerfile: Dockerfile
|
|
container_name: itsm_app
|
|
restart: unless-stopped
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8090:8090"
|
|
environment:
|
|
DATABASE_URL: postgresql://itsm:${POSTGRES_PASSWORD}@postgres:5432/itsm
|
|
AES_DASHBOARD_URL: ${AES_DASHBOARD_URL:-http://host.docker.internal:8080}
|
|
FORGE_BASE_URL: ${FORGE_BASE_URL:-}
|
|
FORGE_SERVICE_TOKEN: ${FORGE_SERVICE_TOKEN:-}
|
|
# Hinter TLS-Terminierung (Reverse Proxy) setzen:
|
|
# ITSM_HTTPS: "1"
|
|
# ITSM_TRUSTED_PROXY_COUNT: "1"
|
|
ITSM_HTTPS: ${ITSM_HTTPS:-0}
|
|
ITSM_TRUSTED_PROXY_COUNT: ${ITSM_TRUSTED_PROXY_COUNT:-0}
|
|
RUST_LOG: ${RUST_LOG:-info}
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|