I publish script
This commit is contained in:
parent
4e9d7a629c
commit
8f8cba49db
|
|
@ -11,10 +11,12 @@
|
||||||
# IMAGE_NAME — image name (default: blaxsoftware/laravel)
|
# IMAGE_NAME — image name (default: blaxsoftware/laravel)
|
||||||
# REGISTRY — optional registry (if set, images are re-tagged from IMAGE_NAME to REGISTRY/IMAGE_NAME)
|
# REGISTRY — optional registry (if set, images are re-tagged from IMAGE_NAME to REGISTRY/IMAGE_NAME)
|
||||||
# DRY_RUN — set to 1 to print commands without executing
|
# DRY_RUN — set to 1 to print commands without executing
|
||||||
|
# FAIL_ON_MISSING — set to 1 to exit when a local source image is missing
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
IMAGE_NAME="${IMAGE_NAME:-blaxsoftware/laravel}"
|
IMAGE_NAME="${IMAGE_NAME:-blaxsoftware/laravel}"
|
||||||
|
FAIL_ON_MISSING="${FAIL_ON_MISSING:-0}"
|
||||||
|
|
||||||
# If REGISTRY is set, push to REGISTRY/<basename of IMAGE_NAME>; otherwise push IMAGE_NAME directly
|
# If REGISTRY is set, push to REGISTRY/<basename of IMAGE_NAME>; otherwise push IMAGE_NAME directly
|
||||||
if [ -n "${REGISTRY:-}" ]; then
|
if [ -n "${REGISTRY:-}" ]; then
|
||||||
|
|
@ -89,6 +91,7 @@ tag_and_push() {
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
TOTAL=0
|
TOTAL=0
|
||||||
PUSHED=0
|
PUSHED=0
|
||||||
|
SKIPPED=()
|
||||||
|
|
||||||
for PHP_VERSION in "${PUSH_VERSIONS[@]}"; do
|
for PHP_VERSION in "${PUSH_VERSIONS[@]}"; do
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -96,26 +99,38 @@ for PHP_VERSION in "${PUSH_VERSIONS[@]}"; do
|
||||||
echo " Pushing PHP ${PHP_VERSION}"
|
echo " Pushing PHP ${PHP_VERSION}"
|
||||||
echo "==========================================="
|
echo "==========================================="
|
||||||
|
|
||||||
|
SOURCE_TAG="${LOCAL}:php${PHP_VERSION}"
|
||||||
|
if ! docker image inspect "${SOURCE_TAG}" >/dev/null 2>&1; then
|
||||||
|
if [ "${FAIL_ON_MISSING}" = "1" ]; then
|
||||||
|
echo "ERROR: Missing local image ${SOURCE_TAG}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Skipping PHP ${PHP_VERSION}: missing local image ${SOURCE_TAG}"
|
||||||
|
SKIPPED+=("$PHP_VERSION")
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
# Base PHP tag
|
# Base PHP tag
|
||||||
tag_and_push "${LOCAL}:php${PHP_VERSION}" "${REMOTE}:php${PHP_VERSION}"
|
tag_and_push "${SOURCE_TAG}" "${REMOTE}:php${PHP_VERSION}"
|
||||||
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
||||||
|
|
||||||
# Laravel combo tags
|
# Laravel combo tags
|
||||||
LARAVEL_VERSIONS="${PHP_LARAVEL_MAP[$PHP_VERSION]}"
|
LARAVEL_VERSIONS="${PHP_LARAVEL_MAP[$PHP_VERSION]}"
|
||||||
for LV in $LARAVEL_VERSIONS; do
|
for LV in $LARAVEL_VERSIONS; do
|
||||||
tag_and_push "${LOCAL}:php${PHP_VERSION}" "${REMOTE}:laravel${LV}-php${PHP_VERSION}"
|
tag_and_push "${SOURCE_TAG}" "${REMOTE}:laravel${LV}-php${PHP_VERSION}"
|
||||||
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
||||||
|
|
||||||
# Bare laravelN tag
|
# Bare laravelN tag
|
||||||
if [ "${LARAVEL_RECOMMENDED_PHP[$LV]}" = "$PHP_VERSION" ]; then
|
if [ "${LARAVEL_RECOMMENDED_PHP[$LV]}" = "$PHP_VERSION" ]; then
|
||||||
tag_and_push "${LOCAL}:php${PHP_VERSION}" "${REMOTE}:laravel${LV}"
|
tag_and_push "${SOURCE_TAG}" "${REMOTE}:laravel${LV}"
|
||||||
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# latest
|
# latest
|
||||||
if [ "$PHP_VERSION" = "$LATEST_PHP" ]; then
|
if [ "$PHP_VERSION" = "$LATEST_PHP" ]; then
|
||||||
tag_and_push "${LOCAL}:php${PHP_VERSION}" "${REMOTE}:latest"
|
tag_and_push "${SOURCE_TAG}" "${REMOTE}:latest"
|
||||||
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
TOTAL=$((TOTAL + 1)); PUSHED=$((PUSHED + 1))
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
@ -128,3 +143,7 @@ echo "==========================================="
|
||||||
echo " Publish complete"
|
echo " Publish complete"
|
||||||
echo "==========================================="
|
echo "==========================================="
|
||||||
echo "Pushed ${PUSHED} tags to ${REMOTE}"
|
echo "Pushed ${PUSHED} tags to ${REMOTE}"
|
||||||
|
|
||||||
|
if [ ${#SKIPPED[@]} -gt 0 ]; then
|
||||||
|
echo "Skipped PHP versions (missing local images): ${SKIPPED[*]}"
|
||||||
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue