feat(deploy): Multi-Stage-Docker-Build fuer automatisches Deployment

- App_Server/Dockerfile: Build-Context auf Repo-Root, COPY-Pfade
  angepasst, ENTRYPOINT aktiviert, dev-Stage mit inittypescriptdev.sh
- NGINX_Server/Dockerfile: Multi-Stage mit frontend-Stage (Node.js baut
  TypeScript), statische Dateien und Config-Templates ins Image kopiert
- docker-compose.base.yaml: Context auf '.', python-venv Volume entfernt,
  NGINX_STATIC_DIR/CONFIG_TEMPLATE_DIR bind-mounts in Dev verschoben
- docker-compose.dev.yaml: python-venv-dev Volume, APP_DEBUG=true,
  nginx-proxy mit bind-mounts fuer statische Dateien und Templates
- docker-compose.prod.yaml: Code-bind-mount entfernt, nginx-proxy extends
- approot.py: absolute Pfade, Debug-Modus via APP_DEBUG Umgebungsvariable
- init.sh: vereinfacht (kein cd/pip, absolute Pfade)
- inireader.mjs: absoluter Pfad fuer config.ini
- package.json: scripts.build (tsc + rollup) ergaenzt
- .dockerignore, deploy-kbcrm-test.sh, deploy-kbcrm-prod.sh erstellt
- docker-compose.save.yaml geloescht
- env-sample: BUILD_ENVIRONMENT nach oben, Dev-only Variablen markiert

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
gg committed 2026-09-13 18:40:55 +02:00
1 parent 31ef206bd8
commit 3b3e2893e5
14 files changed
+200 -91

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
# Deploy-Script: Automatisches Deployment nach TEST (test-prod)
# Wird durch Git-Hook/Webhook oder manuell aufgerufen.
# Voraussetzungen auf dem Server: git, docker, docker compose.
set -euo pipefail
# Konfiguration — an die jeweilige Server-Umgebung anpassen
REPO_DIR=/opt/kbcrm-test/repo
COMPOSE_FILE=docker-compose.prod.yaml
ENV_FILE=/opt/kbcrm-test/.env
TEST_PORT=8443
echo "=== Deploy KB-CRM TEST ==="
# 1. Code aktualisieren
cd "$REPO_DIR"
echo "=== Pulling latest code ==="
git fetch origin main
git checkout main
git reset --hard origin/main
# 2. Images neu bauen und Container starten
echo "=== Building and starting containers ==="
docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" up -d --build
# 3. Health-Check
echo "=== Waiting for container startup ==="
sleep 10
if curl -sf "http://localhost:${TEST_PORT}/health-check" >/dev/null 2>&1; then
echo "Health check: OK"
else
echo "WARNING: Health check failed — check container logs with:"
echo " docker compose --env-file $ENV_FILE -f $COMPOSE_FILE logs"
fi
echo "=== Deploy TEST complete ==="