name: Deploy App on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Deploy to Server run: | APP_DIR="/opt/aicds/apps/${GITHUB_REPOSITORY#*/}" mkdir -p $APP_DIR cp -a . $APP_DIR/ cd $APP_DIR docker compose down || true docker compose up -d --build docker image prune -f # Einmaliger Schritt: Traefik nimmt neue Container nicht mehr auf. # Nach dem Neustart liest es alle laufenden Container neu ein. # Dieser Schritt wird danach wieder entfernt. - name: Traefik neu einlesen run: | echo "--- vorher ---" docker ps --filter name=traefik --format '{{.Names}} {{.Status}}' docker restart traefik echo "--- nachher ---" sleep 20 docker ps --filter name=traefik --format '{{.Names}} {{.Status}}' echo "--- Router-Test von innen ---" for i in 1 2 3 4 5 6; do C=$(docker run --rm --network agent-net curlimages/curl:latest -sk -o /dev/null -w '%{http_code}' --max-time 10 -H 'Host: garten.aicds.ch' https://traefik/ 2>/dev/null || echo "-") echo "Versuch $i: $C" [ "$C" = "200" ] && break sleep 15 done echo "--- Traefik-Log, letzte 25 Zeilen ---" docker logs --tail=25 traefik 2>&1 | tail -25 || true