From 564caed3e594d91ede839ab0ac1bcc8057a63566 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 25 Jan 2026 09:33:42 -0600 Subject: [PATCH] refactor: rename base images to gmcintire/towerops-base Changed image naming scheme from separate builder/runtime images to a single image name with different tags: - docker.io/gmcintire/towerops-base:builder - docker.io/gmcintire/towerops-base:runtime - docker.io/gmcintire/towerops-base:latest (alias for runtime) This simplifies the naming and makes it clearer that both images are part of the same towerops-base image family. Changes: - build.sh: Use IMAGE_NAME with BUILDER_TAG/RUNTIME_TAG - Makefile: Update all targets to use new naming - k8s/Dockerfile: Point to gmcintire/towerops-base:builder and :runtime --- k8s/Dockerfile | 4 +- k8s/base-image/Makefile | 68 ++++++++++++-------------- k8s/base-image/build.sh | 104 ++++++++++++++++++---------------------- 3 files changed, 80 insertions(+), 96 deletions(-) diff --git a/k8s/Dockerfile b/k8s/Dockerfile index 048cdfaa..6b062598 100644 --- a/k8s/Dockerfile +++ b/k8s/Dockerfile @@ -18,8 +18,8 @@ ARG OTP_VERSION=28.3 ARG DEBIAN_VERSION=trixie-20251229-slim # Use custom base images with pre-installed dependencies for faster builds -ARG BUILDER_IMAGE="registry.gitlab.com/towerops/towerops/elixir-builder:latest" -ARG RUNNER_IMAGE="registry.gitlab.com/towerops/towerops/debian-runtime:latest" +ARG BUILDER_IMAGE="docker.io/gmcintire/towerops-base:builder" +ARG RUNNER_IMAGE="docker.io/gmcintire/towerops-base:runtime" FROM ${BUILDER_IMAGE} AS builder diff --git a/k8s/base-image/Makefile b/k8s/base-image/Makefile index cd9cca9b..db3994f3 100644 --- a/k8s/base-image/Makefile +++ b/k8s/base-image/Makefile @@ -5,12 +5,12 @@ CONTAINER_CMD := $(shell command -v podman 2>/dev/null || command -v docker 2>/d REGISTRY ?= registry.gitlab.com/towerops/towerops DOCKERHUB_REGISTRY ?= docker.io/gmcintire -BUILDER_IMAGE_NAME ?= elixir-builder -RUNTIME_IMAGE_NAME ?= debian-runtime +IMAGE_NAME ?= towerops-base +BUILDER_TAG ?= builder +RUNTIME_TAG ?= runtime ELIXIR_VERSION ?= 1.19.4 OTP_VERSION ?= 28.3 DEBIAN_VERSION ?= trixie-20251229-slim -TAG ?= $(ELIXIR_VERSION)-erlang-$(OTP_VERSION)-debian-$(DEBIAN_VERSION) help: ## Show this help message @echo "Available targets:" @@ -24,55 +24,49 @@ update: build ## Alias for build (rebuilds with latest packages) test: ## Test the built images @echo "Testing builder image..." - @$(CONTAINER_CMD) run --rm $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest mix --version + @$(CONTAINER_CMD) run --rm $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) mix --version @echo "Testing runtime image..." - @$(CONTAINER_CMD) run --rm $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest locale | grep "en_US.UTF-8" + @$(CONTAINER_CMD) run --rm $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) locale | grep "en_US.UTF-8" @echo "✅ All tests passed!" push: ## Push images to GitLab and Docker Hub - @echo "Pushing builder image to GitLab registry..." - @$(CONTAINER_CMD) push $(REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) push $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest - @echo "Pushing runtime image to GitLab registry..." - @$(CONTAINER_CMD) push $(REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) push $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest + @echo "Pushing to GitLab registry..." + @$(CONTAINER_CMD) push $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) + @$(CONTAINER_CMD) push $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) + @$(CONTAINER_CMD) push $(REGISTRY)/$(IMAGE_NAME):latest @echo "Tagging for Docker Hub..." - @$(CONTAINER_CMD) tag $(REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) tag $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):latest - @$(CONTAINER_CMD) tag $(REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) tag $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):latest + @$(CONTAINER_CMD) tag $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) + @$(CONTAINER_CMD) tag $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) + @$(CONTAINER_CMD) tag $(REGISTRY)/$(IMAGE_NAME):latest $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):latest @echo "Pushing to Docker Hub..." - @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):latest - @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) - @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):latest + @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) + @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) + @$(CONTAINER_CMD) push $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):latest pull: ## Pull latest images from registry - @$(CONTAINER_CMD) pull $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest - @$(CONTAINER_CMD) pull $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest + @$(CONTAINER_CMD) pull $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) + @$(CONTAINER_CMD) pull $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) inspect: ## Show image details (size, layers, labels) - @echo "Builder image size:" - @$(CONTAINER_CMD) images $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" + @echo "Builder image:" + @$(CONTAINER_CMD) images $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" @echo "" - @echo "Runtime image size:" - @$(CONTAINER_CMD) images $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" + @echo "Runtime image:" + @$(CONTAINER_CMD) images $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" @echo "" - @echo "Builder image labels:" - @$(CONTAINER_CMD) inspect $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest --format '{{range $$k, $$v := .Config.Labels}}{{$$k}}={{$$v}}{{println}}{{end}}' + @echo "Builder labels:" + @$(CONTAINER_CMD) inspect $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) --format '{{range $$k, $$v := .Config.Labels}}{{$$k}}={{$$v}}{{println}}{{end}}' @echo "" - @echo "Runtime image labels:" - @$(CONTAINER_CMD) inspect $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest --format '{{range $$k, $$v := .Config.Labels}}{{$$k}}={{$$v}}{{println}}{{end}}' + @echo "Runtime labels:" + @$(CONTAINER_CMD) inspect $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) --format '{{range $$k, $$v := .Config.Labels}}{{$$k}}={{$$v}}{{println}}{{end}}' clean: ## Remove local images - @$(CONTAINER_CMD) rmi $(REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) || true - @$(CONTAINER_CMD) rmi $(REGISTRY)/$(BUILDER_IMAGE_NAME):latest || true - @$(CONTAINER_CMD) rmi $(REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) || true - @$(CONTAINER_CMD) rmi $(REGISTRY)/$(RUNTIME_IMAGE_NAME):latest || true - @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):$(TAG) || true - @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(BUILDER_IMAGE_NAME):latest || true - @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):$(TAG) || true - @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(RUNTIME_IMAGE_NAME):latest || true + @$(CONTAINER_CMD) rmi $(REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) || true + @$(CONTAINER_CMD) rmi $(REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) || true + @$(CONTAINER_CMD) rmi $(REGISTRY)/$(IMAGE_NAME):latest || true + @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(BUILDER_TAG) || true + @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):$(RUNTIME_TAG) || true + @$(CONTAINER_CMD) rmi $(DOCKERHUB_REGISTRY)/$(IMAGE_NAME):latest || true @echo "✅ Cleaned local images" login: ## Login to GitLab container registry diff --git a/k8s/base-image/build.sh b/k8s/base-image/build.sh index 07d1b495..35ef4dd7 100755 --- a/k8s/base-image/build.sh +++ b/k8s/base-image/build.sh @@ -16,6 +16,8 @@ fi # Configuration REGISTRY="${REGISTRY:-registry.gitlab.com/towerops/towerops}" +DOCKERHUB_REGISTRY="${DOCKERHUB_REGISTRY:-docker.io/gmcintire}" +IMAGE_NAME="towerops-base" ELIXIR_VERSION="${ELIXIR_VERSION:-1.19.4}" OTP_VERSION="${OTP_VERSION:-28.3}" DEBIAN_VERSION="${DEBIAN_VERSION:-trixie-20251229-slim}" @@ -24,22 +26,18 @@ DEBIAN_VERSION="${DEBIAN_VERSION:-trixie-20251229-slim}" BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") GIT_SHA=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") -# Image names -BUILDER_IMAGE_NAME="elixir-builder" -RUNTIME_IMAGE_NAME="debian-runtime" - -# Image tags +# Image tags (separate tags for builder and runtime variants) +BUILDER_TAG="builder" +RUNTIME_TAG="runtime" TAG_FULL="${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}" -TAG_LATEST="latest" -TAG_DATED="${TAG_FULL}-${BUILD_DATE//[:-]*/}" # YYYY-MM-DD format +TAG_DATED="${BUILD_DATE//[:-]*/}" # YYYY-MM-DD format echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Building Base Images for Towerops" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Container: ${CONTAINER_CMD}" -echo "Registry: ${REGISTRY}" -echo "Builder Image: ${BUILDER_IMAGE_NAME}" -echo "Runtime Image: ${RUNTIME_IMAGE_NAME}" +echo "GitLab: ${REGISTRY}/${IMAGE_NAME}" +echo "Docker Hub: ${DOCKERHUB_REGISTRY}/${IMAGE_NAME}" echo "Elixir: ${ELIXIR_VERSION}" echo "Erlang: ${OTP_VERSION}" echo "Debian: ${DEBIAN_VERSION}" @@ -62,9 +60,8 @@ $CONTAINER_CMD build \ --label "elixir.version=${ELIXIR_VERSION}" \ --label "erlang.version=${OTP_VERSION}" \ --label "debian.version=${DEBIAN_VERSION}" \ - -t "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" \ - -t "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" \ - -t "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" \ + -t "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" \ + -t "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" \ -f Dockerfile \ . @@ -79,86 +76,79 @@ $CONTAINER_CMD build \ --label "build.date=${BUILD_DATE}" \ --label "build.git-sha=${GIT_SHA}" \ --label "debian.version=${DEBIAN_VERSION}" \ - -t "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" \ - -t "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" \ - -t "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" \ + -t "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" \ + -t "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" \ + -t "${REGISTRY}/${IMAGE_NAME}:latest" \ -f Dockerfile \ . echo "" echo "✅ Build complete!" echo "" -echo "Builder image tags:" -echo " - ${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" -echo " - ${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" -echo " - ${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" -echo "" -echo "Runtime image tags:" -echo " - ${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" -echo " - ${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" -echo " - ${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" +echo "Image tags created:" +echo " - ${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" +echo " - ${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" +echo " - ${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" +echo " - ${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" +echo " - ${REGISTRY}/${IMAGE_NAME}:latest (runtime)" echo "" # Show image sizes echo "📦 Image sizes:" -$CONTAINER_CMD images "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" -$CONTAINER_CMD images "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" +$CONTAINER_CMD images "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" +$CONTAINER_CMD images "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" echo "" # Verify images work echo "🔍 Verifying builder image..." -$CONTAINER_CMD run --rm "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" mix --version +$CONTAINER_CMD run --rm "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" mix --version echo "" echo "🔍 Verifying runtime image..." -$CONTAINER_CMD run --rm "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" locale | grep "en_US.UTF-8" +$CONTAINER_CMD run --rm "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" locale | grep "en_US.UTF-8" echo "" # Ask if user wants to push read -p "Push to registries? (y/N) " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "🚀 Pushing builder image to GitLab registry..." - $CONTAINER_CMD push "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD push "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD push "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" - - echo "🚀 Pushing runtime image to GitLab registry..." - $CONTAINER_CMD push "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD push "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD push "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" + echo "🚀 Pushing to GitLab registry..." + $CONTAINER_CMD push "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" + $CONTAINER_CMD push "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" + $CONTAINER_CMD push "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" + $CONTAINER_CMD push "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" + $CONTAINER_CMD push "${REGISTRY}/${IMAGE_NAME}:latest" echo "" echo "🚀 Tagging for Docker Hub..." - DOCKERHUB_REGISTRY="docker.io/gmcintire" - $CONTAINER_CMD tag "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD tag "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD tag "${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" - $CONTAINER_CMD tag "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD tag "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD tag "${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" + $CONTAINER_CMD tag "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" + $CONTAINER_CMD tag "${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" + $CONTAINER_CMD tag "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" + $CONTAINER_CMD tag "${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" + $CONTAINER_CMD tag "${REGISTRY}/${IMAGE_NAME}:latest" "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:latest" echo "🚀 Pushing to Docker Hub..." - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_DATED}" - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_FULL}" - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" - $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_DATED}" + $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" + $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}-${TAG_DATED}" + $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" + $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}-${TAG_DATED}" + $CONTAINER_CMD push "${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:latest" echo "" echo "✅ Pushed successfully to both registries!" echo "" echo "Update your main Dockerfile to use:" - echo " Builder: ARG BUILDER_IMAGE=\"${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}\"" - echo " Runtime: ARG RUNNER_IMAGE=\"${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}\"" + echo " Builder: ARG BUILDER_IMAGE=\"${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}\"" + echo " Runtime: ARG RUNNER_IMAGE=\"${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}\"" else echo "⏭️ Skipping push. To push later:" echo " GitLab:" - echo " $CONTAINER_CMD push ${REGISTRY}/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" - echo " $CONTAINER_CMD push ${REGISTRY}/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" + echo " $CONTAINER_CMD push ${REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" + echo " $CONTAINER_CMD push ${REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" + echo " $CONTAINER_CMD push ${REGISTRY}/${IMAGE_NAME}:latest" echo " Docker Hub:" - echo " $CONTAINER_CMD push docker.io/gmcintire/${BUILDER_IMAGE_NAME}:${TAG_LATEST}" - echo " $CONTAINER_CMD push docker.io/gmcintire/${RUNTIME_IMAGE_NAME}:${TAG_LATEST}" + echo " $CONTAINER_CMD push ${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${BUILDER_TAG}" + echo " $CONTAINER_CMD push ${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:${RUNTIME_TAG}" + echo " $CONTAINER_CMD push ${DOCKERHUB_REGISTRY}/${IMAGE_NAME}:latest" fi echo ""