Use ephemeral docker login config; document Cloudflare bypass via Jenkins extra_hosts.
29 lines
1.1 KiB
Bash
Executable file
29 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# shellcheck source=/dev/null
|
|
source .ci-bin/ci-env.sh
|
|
|
|
REGISTRY_IMAGE="${REGISTRY_IMAGE:-git.aexoradao.com/epistemophiliac/erpnext}"
|
|
REGISTRY_HOST="${REGISTRY_HOST:-git.aexoradao.com}"
|
|
GIT_SHA="$(git rev-parse --short HEAD)"
|
|
IMAGE_TAG="${IMAGE_TAG:-main-${GIT_SHA}}"
|
|
|
|
if [ -z "${REGISTRY_USER:-}" ] || [ -z "${REGISTRY_PASSWORD:-}" ]; then
|
|
echo "ERROR: set REGISTRY_USER and REGISTRY_PASSWORD (Jenkins forgejo-erpnext credentials)"
|
|
exit 1
|
|
fi
|
|
|
|
# Ephemeral docker config — do not persist registry password in workspace
|
|
PUSH_DOCKER_CONFIG="$(mktemp -d)"
|
|
trap 'rm -rf "$PUSH_DOCKER_CONFIG"' EXIT
|
|
export DOCKER_CONFIG="$PUSH_DOCKER_CONFIG"
|
|
|
|
echo "$REGISTRY_PASSWORD" | $DOCKER login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin
|
|
|
|
echo "Pushing ${REGISTRY_IMAGE}:${IMAGE_TAG} (large layers need Cloudflare bypass — Jenkins extra_hosts git.aexoradao.com:host-gateway)"
|
|
$DOCKER push "${REGISTRY_IMAGE}:${IMAGE_TAG}"
|
|
$DOCKER push "${REGISTRY_IMAGE}:main"
|
|
|
|
echo "Pushed ${REGISTRY_IMAGE}:${IMAGE_TAG}"
|
|
echo "Pushed ${REGISTRY_IMAGE}:main"
|