Bypass Cloudflare/Traefik 413 limits by copying to forgejo:3000 over Docker network instead of docker push to git.aexoradao.com.
36 lines
1.3 KiB
Bash
Executable file
36 lines
1.3 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}"
|
|
FORGEJO_HOST="${FORGEJO_HOST:-forgejo-vydgeq365afzmxe4s1d75fwv}"
|
|
FORGEJO_NETWORK="${FORGEJO_NETWORK:-vydgeq365afzmxe4s1d75fwv}"
|
|
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
|
|
|
|
push_with_skopeo() {
|
|
local ref="$1"
|
|
echo "Skopeo push ${ref} -> http://${FORGEJO_HOST}:3000 (internal, bypasses Cloudflare/Traefik)"
|
|
$DOCKER run --rm \
|
|
--network "${FORGEJO_NETWORK}" \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
quay.io/skopeo/stable:v1.17.0 \
|
|
copy "docker-daemon:${ref}" \
|
|
"docker://${FORGEJO_HOST}:3000/epistemophiliac/erpnext:${ref##*:}" \
|
|
--dest-creds "${REGISTRY_USER}:${REGISTRY_PASSWORD}" \
|
|
--dest-tls-verify=false \
|
|
--retry-times 3
|
|
}
|
|
|
|
push_with_skopeo "${REGISTRY_IMAGE}:${IMAGE_TAG}"
|
|
push_with_skopeo "${REGISTRY_IMAGE}:main"
|
|
|
|
echo "Pushed via internal Forgejo (public pull: ${REGISTRY_IMAGE}:<tag>)"
|