#!/usr/bin/env bash # Pushes the mdlp-image - already built locally with ./mdlp-image.sh, and # ideally verified with ./mdlp-run-image.sh - to a container registry, so CI # or other machines can reuse it without rebuilding the whole toolchain. set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")" ROOT="$(pwd)" fail() { echo "PREFLIGHT FAIL: $*" >&2; exit 1; } command -v docker >/dev/null 2>&1 \ || fail "docker not found in PATH" [ -f "$ROOT/../registry.env" ] \ || fail "../registry.env not found - copy ../registry.env.example to ../registry.env and fill in your registry credentials" # shellcheck disable=SC1091 source "$ROOT/../registry.env" : "${REGISTRY:?registry.env must set REGISTRY}" : "${REGISTRY_USER:?registry.env must set REGISTRY_USER}" : "${REGISTRY_PASSWORD:?registry.env must set REGISTRY_PASSWORD}" MDLP_REGISTRY_IMAGE="${MDLP_REGISTRY_IMAGE:-questshock/mdlp}" VERSION="$(<"$ROOT/mdlp-image/VERSION")" [ -n "$VERSION" ] || fail "mdlp-image/VERSION is empty" docker image inspect "$MDLP_REGISTRY_IMAGE:$VERSION" >/dev/null 2>&1 \ || fail "$MDLP_REGISTRY_IMAGE:$VERSION not found locally - run ./mdlp-image.sh first" echo "== Logging in to $REGISTRY ==" echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin echo "== Pushing $MDLP_REGISTRY_IMAGE:$VERSION and :latest ==" docker push "$MDLP_REGISTRY_IMAGE:$VERSION" docker push "$MDLP_REGISTRY_IMAGE:latest" echo "== Done ==" echo "Image: $MDLP_REGISTRY_IMAGE:$VERSION"