From 5224778c07253930bd72b10e2fe361f368230555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Sun, 21 Jun 2026 18:03:59 +0200 Subject: [PATCH] deploy.sh dazu --- deploy.sh | 43 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/deploy.sh b/deploy.sh index 891ce37..0b6ac30 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,13 +1,13 @@ #!/bin/bash -# Deploy Script -# Baut das Docker Image und lädt es zur Registry hoch +# Deploy Script +# Baut die Produktions-Images und lädt sie zur Registry hoch set -e # Konfiguration REGISTRY="docker.citysensor.de" -PROJEKT="wetterstation" +PROJEKT="aerzte" IMAGE_NAME=("${PROJEKT}-frontend" "${PROJEKT}-backend") TAG="${TAG:-$(date +%Y%m%d%H%M)}" # default Datum @@ -21,6 +21,7 @@ echo "==========================================" echo "Registry: ${REGISTRY}" echo "Images: ${IMAGE_NAME[*]}" echo "Tag: ${TAG}" +echo "Version: ${VERSION}" echo "Build-Datum: ${BUILD_DATE}" echo "==========================================" echo "" @@ -39,43 +40,31 @@ docker buildx use multiplatform-builder echo "" for image in "${IMAGE_NAME[@]}"; do - # Entferne Projekt-Präfix für Verzeichnisnamen + # Verzeichnisname = Image-Name ohne Projekt-Präfix (frontend / backend) IMAGE_DIR="${image#${PROJEKT}-}" FULL_IMAGE="${REGISTRY}/${image}:${TAG}" - + echo "==========================================" echo ">>> Baue ${image}..." echo ">>> Image: ${FULL_IMAGE}" echo "==========================================" - - # Build-Args vorbereiten (für Frontend Version und Build-Date) - BUILD_ARGS="--build-arg BUILD_DATE=${BUILD_DATE} --build-arg VERSION=${VERSION}" - - # 3. Docker Image bauen und pushen (Multiplatform) - # monitor: Build-Kontext ist Projekt-Root (check_wetterserver.py liegt dort) - if [[ "${image}" == "${PROJEKT}-monitor" ]]; then - DOCKERFILE_ARG="-f monitor/Dockerfile" - BUILD_CONTEXT="." - else - DOCKERFILE_ARG="" - BUILD_CONTEXT="./${IMAGE_DIR}" - fi + # 3. Produktions-Image bauen und pushen (Multiplatform) + # -> nutzt das jeweilige Dockerfile.prod (nginx bzw. npm start) docker buildx build \ - --platform linux/amd64,linux/arm64 \ - ${BUILD_ARGS} \ - ${DOCKERFILE_ARG} \ + --platform linux/amd64 \ + -f "./${IMAGE_DIR}/Dockerfile.prod" \ -t "${FULL_IMAGE}" \ --push \ - "${BUILD_CONTEXT}" - + "./${IMAGE_DIR}" + # 4. Tagge auch als :${VERSION} und :latest echo ">>> Tagge ${image} als :${VERSION} und :latest..." docker buildx imagetools create \ -t "${REGISTRY}/${image}:${VERSION}" \ -t "${REGISTRY}/${image}:latest" \ "${FULL_IMAGE}" - + echo "✓ ${image} erfolgreich gebaut und gepusht!" echo "" done @@ -88,9 +77,9 @@ echo "✓ Deploy erfolgreich abgeschlossen!" echo "==========================================" echo "Registry: ${REGISTRY}" echo "Projekt: ${PROJEKT}" -echo "Tag: ${TAG}" +echo "Tag: ${TAG} (zusätzlich: ${VERSION}, latest)" echo "" echo "Auf dem Server ausführen:" -echo " docker compose -f docker-compose.prod.yml pull" -echo " docker compose -f docker-compose.prod.yml up -d" +echo " docker compose -f docker-compose.images.yml pull" +echo " docker compose -f docker-compose.images.yml up -d" echo ""