8891addccb
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
85 lines
3.0 KiB
Bash
Executable File
85 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Angepasst aus dem readin-/sensorapi-deploy.sh (urspr. /Projekte/Logbuch/deploy.sh)
|
|
# Nur linux/amd64, nativer Build auf esprimo (amd64) -> kein buildx/qemu,
|
|
# eigener Dockerfile-Name (Dockerfile_noise). Image-Name: noise.
|
|
|
|
# Ziel-Registry, per Umgebungsvariable ueberschreibbar:
|
|
# REGISTRY=anderes.registry.example ./deploy.sh
|
|
REGISTRY="${REGISTRY:-docker.citysensor.de}"
|
|
# Zweite Registry (Gitea). Das Image wird dorthin zusaetzlich gepusht, damit es
|
|
# nicht nur an einer Stelle liegt. Leersetzen schaltet den zweiten Push ab:
|
|
# REGISTRY2= ./deploy.sh
|
|
REGISTRY2="${REGISTRY2-gitea.fuerst-stuttgart.de/admin}"
|
|
IMAGE_NAME="noise"
|
|
TAG="${1:-latest}"
|
|
PLATFORM="linux/amd64"
|
|
DOCKERFILE="Dockerfile_noise"
|
|
FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${TAG}"
|
|
BUILD_DATE=$(date +%d.%m.%Y)
|
|
|
|
echo "=========================================="
|
|
echo "noise (laerm_web) Deploy Script (amd64)"
|
|
echo "=========================================="
|
|
echo "Registry: ${REGISTRY}"
|
|
echo "Image: ${IMAGE_NAME}"
|
|
echo "Tag: ${TAG}"
|
|
echo "Platform: ${PLATFORM}"
|
|
echo "Dockerfile: ${DOCKERFILE}"
|
|
echo "Build-Datum: ${BUILD_DATE}"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Hinweis: Login wird uebersprungen, weil die Credentials fuer ${REGISTRY}
|
|
# bereits in ~/.docker/config.json liegen.
|
|
# Bei Bedarf manuell: docker login ${REGISTRY}
|
|
|
|
echo ">>> Baue Image (nur ${PLATFORM}, nativ) ..."
|
|
docker build \
|
|
--platform "${PLATFORM}" \
|
|
-f "${DOCKERFILE}" \
|
|
-t "${FULL_IMAGE}" \
|
|
.
|
|
echo ""
|
|
|
|
echo ">>> Pushe ${FULL_IMAGE} ..."
|
|
docker push "${FULL_IMAGE}"
|
|
echo ""
|
|
|
|
# Falls ein anderer Tag als 'latest' gebaut wurde, zusaetzlich latest setzen+pushen
|
|
if [ "${TAG}" != "latest" ]; then
|
|
echo ">>> Tagge zusaetzlich als :latest ..."
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY}/${IMAGE_NAME}:latest"
|
|
docker push "${REGISTRY}/${IMAGE_NAME}:latest"
|
|
echo ""
|
|
fi
|
|
|
|
# Dasselbe Image zusaetzlich in die zweite Registry. Ein Fehlschlag bricht das
|
|
# Skript nicht ab: in ${REGISTRY} liegt das Image dann bereits, der Stack kann
|
|
# es also ziehen - die Meldung sagt nur, dass die Zweitablage fehlt.
|
|
if [ -n "${REGISTRY2}" ]; then
|
|
echo ">>> Pushe zusaetzlich nach ${REGISTRY2}/${IMAGE_NAME} ..."
|
|
ok=true
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY2}/${IMAGE_NAME}:${TAG}"
|
|
docker push "${REGISTRY2}/${IMAGE_NAME}:${TAG}" || ok=false
|
|
if [ "${ok}" = true ] && [ "${TAG}" != "latest" ]; then
|
|
docker tag "${FULL_IMAGE}" "${REGISTRY2}/${IMAGE_NAME}:latest"
|
|
docker push "${REGISTRY2}/${IMAGE_NAME}:latest" || ok=false
|
|
fi
|
|
if [ "${ok}" != true ]; then
|
|
echo "!!! Push nach ${REGISTRY2} fehlgeschlagen."
|
|
echo "!!! Angemeldet? docker login ${REGISTRY2%%/*}"
|
|
echo "!!! ${FULL_IMAGE} ist gepusht und einsetzbar."
|
|
fi
|
|
echo ""
|
|
fi
|
|
|
|
echo "=========================================="
|
|
echo "Build + Push fertig: ${FULL_IMAGE}"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Danach Stack aktualisieren:"
|
|
echo " cd /opt/stacks/esprimo/noisesensors && docker compose up -d noise"
|