Add interactive publish script
This commit is contained in:
46
scripts/publish-image.sh
Executable file
46
scripts/publish-image.sh
Executable file
@@ -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."
|
||||||
Reference in New Issue
Block a user