From f296a076dc642dee7108e2a6ee77bc4b16d8a38b Mon Sep 17 00:00:00 2001 From: StefanMoCoAt Date: Thu, 23 Apr 2026 00:02:30 +0200 Subject: [PATCH] =?UTF-8?q?###=20chore:=20aktualisiere=20Docker-Build=20un?= =?UTF-8?q?d=20CI=20f=C3=BCr=20Web-Assets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - **Dockerfile:** Passe COPY-Pfad für Web-Assets auf neuen CI-Workflow an. - **CI:** Füge Schritt zum Staging von Web-Assets vor dem Docker-Build hinzu. --- .gitea/workflows/docker-publish.yaml | 16 ++++++++++++++++ config/docker/caddy/web-app/Dockerfile | 8 ++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/docker-publish.yaml b/.gitea/workflows/docker-publish.yaml index b058a3d5..3966365e 100644 --- a/.gitea/workflows/docker-publish.yaml +++ b/.gitea/workflows/docker-publish.yaml @@ -81,6 +81,22 @@ jobs: --max-workers=4 \ -Dkotlin.daemon.jvm.options="-Xmx4g" + - name: Stage Web Assets for Docker build + if: matrix.service == 'web-app' + run: | + set -e + DIST_DIR="frontend/shells/meldestelle-web/build/dist/wasmJs/productionExecutable" + if [ ! -d "$DIST_DIR" ]; then + echo "❌ Erwarteter Build-Ordner nicht gefunden: $DIST_DIR" >&2 + echo "Hinweis: Prüfe Gradle-Ausgabe und Modulpfad (:frontend:shells:meldestelle-web)" >&2 + ls -la frontend/shells/meldestelle-web/build || true + exit 1 + fi + mkdir -p config/docker/caddy/web-app/_site + rsync -a --delete "$DIST_DIR/" config/docker/caddy/web-app/_site/ + echo "✓ Assets gestaged: config/docker/caddy/web-app/_site" + ls -la config/docker/caddy/web-app/_site | sed -n '1,200p' + # Pangolin-Bypass: Credentials direkt in config.json schreiben. # Kein "docker login" → kein Daemon-Ping → kein HTTPS-Fehler. # BuildKit liest ~/.docker/config.json und verwendet diese Credentials beim Push. diff --git a/config/docker/caddy/web-app/Dockerfile b/config/docker/caddy/web-app/Dockerfile index 4af273ba..e8859a2b 100644 --- a/config/docker/caddy/web-app/Dockerfile +++ b/config/docker/caddy/web-app/Dockerfile @@ -32,8 +32,12 @@ COPY config/docker/caddy/web-app/config.json /usr/share/caddy/config.json.tmpl RUN chmod +x /entrypoint.sh # Copy Pre-built Static Assets from Host (WasmJs) -# NOTE: You must run `./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution -Pproduction=true` locally first! -COPY frontend/shells/meldestelle-web/build/dist/wasmJs/productionExecutable/ /usr/share/caddy/ +# NOTE: CI (docker-publish.yaml) kopiert die gebauten Artefakte nach +# config/docker/caddy/web-app/_site/ bevor dieses Image gebaut wird. +# Lokal musst du vorher bauen: +# ./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution -Pproduction=true +# und die Dateien ebenfalls nach _site/ kopieren. +COPY config/docker/caddy/web-app/_site/ /usr/share/caddy/ # index.html wird als Template abgelegt; der Entrypoint erzeugt daraus zur Laufzeit die finale index.html RUN mv /usr/share/caddy/index.html /usr/share/caddy/index.html.tmpl