Deploy gegen fehlendes Secret und Crash-Schleife absichern
All checks were successful
Build & Deploy / deploy (push) Successful in 2m38s

Zwei Faelle, in denen der Lauf gruen geworden waere, obwohl nichts laeuft:

- Ist das Secret DOTENV nicht gesetzt, entstand eine leere .env. Der
  Server wirft dann beim Start (requireEnv), der Container startet
  endlos neu - der Workflow haette das nicht gemerkt. Jetzt bricht der
  Schritt vorher ab.
- "docker compose up -d" kehrt zurueck, sobald der Container erzeugt ist,
  nicht wenn er laeuft. Mit --wait wird der vorhandene Healthcheck zum
  Gate; --wait-timeout 180, weil das erste Health-Ergebnis beim
  Intervall von 60s entsprechend spaet kommt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 18:58:45 +02:00
parent f6490aa292
commit 2d024a7f54

View File

@@ -39,11 +39,18 @@ jobs:
env: env:
DOTENV: ${{ secrets.DOTENV }} DOTENV: ${{ secrets.DOTENV }}
run: | run: |
if [ -z "$DOTENV" ]; then
echo "Secret DOTENV ist leer oder nicht gesetzt."
exit 1
fi
umask 077 umask 077
echo "$DOTENV" > .env echo "$DOTENV" > .env
# --wait: bricht ab, wenn der Container nicht healthy wird. Ohne das
# waere der Lauf gruen, obwohl der Container in einer Crash-Schleife
# haengt - z. B. weil ein Wert in .env fehlt.
- name: Deployen - name: Deployen
run: docker compose up -d --build --remove-orphans run: docker compose up -d --build --remove-orphans --wait --wait-timeout 180
- name: Alte Layer aufraeumen - name: Alte Layer aufraeumen
run: docker image prune -f run: docker image prune -f