#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" if PROJECT_ROOT="$(git -C "${SCRIPT_DIR}" rev-parse --show-toplevel 2>/dev/null)"; then : else PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" fi 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."