From 94f0a80ac89195ffc3552df57eac4b697d5dbde6 Mon Sep 17 00:00:00 2001 From: Robert Rapp Date: Wed, 15 Oct 2025 21:47:44 +0200 Subject: [PATCH] Add interactive publish script --- scripts/publish-image.sh | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 scripts/publish-image.sh diff --git a/scripts/publish-image.sh b/scripts/publish-image.sh new file mode 100755 index 0000000..12cd5c0 --- /dev/null +++ b/scripts/publish-image.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" +DOCKER_CONTEXT="${PROJECT_ROOT}/kirby" +DOCKERFILE_PATH="${DOCKER_CONTEXT}/Dockerfile" + +REGISTRY_HOST="gitea.mindboost.team" +IMAGE_NAME="interkollektives/lichterei-web" +DEFAULT_TAG="0.0.1" + +if ! command -v docker >/dev/null 2>&1; then + echo "Docker is required but not found in PATH." >&2 + exit 1 +fi + +read -rp "Image tag [${DEFAULT_TAG}]: " INPUT_TAG +IMAGE_TAG="${INPUT_TAG:-$DEFAULT_TAG}" +IMAGE_REF="${REGISTRY_HOST}/${IMAGE_NAME}:${IMAGE_TAG}" + +read -rp "Registry username: " REGISTRY_USER +read -rsp "Registry password or token: " REGISTRY_PASSWORD +echo + +echo "Building image ${IMAGE_REF} ..." +docker build \ + --file "${DOCKERFILE_PATH}" \ + --tag "${IMAGE_REF}" \ + "${DOCKER_CONTEXT}" + +echo "Logging into ${REGISTRY_HOST} ..." +echo "${REGISTRY_PASSWORD}" | docker login "${REGISTRY_HOST}" \ + --username "${REGISTRY_USER}" \ + --password-stdin + +cleanup() { + docker logout "${REGISTRY_HOST}" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +echo "Pushing ${IMAGE_REF} ..." +docker push "${IMAGE_REF}" + +echo "Image pushed successfully."