V3.4
This commit is contained in:
+47
-23
@@ -1,49 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
REGISTRY="${GITEA_REGISTRY:-${1:-}}"
|
||||
IMAGE_PATH="${GITEA_IMAGE_PATH:-${2:-}}"
|
||||
TAG="${IMAGE_TAG:-${3:-latest}}"
|
||||
SECOND_TAG="${4:-}"
|
||||
PLATFORM="${PLATFORM:-linux/amd64}"
|
||||
|
||||
if [[ -z "$REGISTRY" || -z "$IMAGE_PATH" ]]; then
|
||||
cat <<USAGE
|
||||
if [[ -z "${REGISTRY}" || -z "${IMAGE_PATH}" ]]; then
|
||||
cat <<'EOF'
|
||||
Verwendung:
|
||||
$0 <registry> <owner/image> [tag]
|
||||
./build-and-push-gitea.sh <registry> <owner/image> [tag] [zweiter-tag]
|
||||
|
||||
Beispiel:
|
||||
$0 git.example.de meinuser/fixfin latest
|
||||
./build-and-push-gitea.sh git.d-razz.de michael/fixfin V3.3 latest
|
||||
|
||||
Alternativ per Umgebungsvariablen:
|
||||
GITEA_REGISTRY=git.example.de \\
|
||||
GITEA_IMAGE_PATH=meinuser/fixfin \\
|
||||
IMAGE_TAG=latest \\
|
||||
$0
|
||||
|
||||
Vor dem ersten Push anmelden:
|
||||
sudo docker login <registry>
|
||||
USAGE
|
||||
Einmalige Registry-Anmeldung:
|
||||
docker login git.d-razz.de -u michael
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
command -v docker >/dev/null 2>&1 || { echo "Docker fehlt."; exit 1; }
|
||||
docker buildx version >/dev/null 2>&1 || { echo "Docker Buildx fehlt."; exit 1; }
|
||||
command -v docker >/dev/null 2>&1 || {
|
||||
echo "FEHLER: Docker fehlt."
|
||||
exit 1
|
||||
}
|
||||
|
||||
docker info >/dev/null 2>&1 || {
|
||||
echo "FEHLER: Docker ist für den aktuellen Benutzer nicht erreichbar."
|
||||
echo "Teste: docker ps"
|
||||
exit 1
|
||||
}
|
||||
|
||||
docker buildx version >/dev/null 2>&1 || {
|
||||
echo "FEHLER: Docker Buildx fehlt."
|
||||
exit 1
|
||||
}
|
||||
|
||||
FULL_IMAGE="${REGISTRY}/${IMAGE_PATH}:${TAG}"
|
||||
|
||||
BUILD_ARGS=(
|
||||
--platform "${PLATFORM}"
|
||||
--tag "${FULL_IMAGE}"
|
||||
)
|
||||
|
||||
if [[ -n "${SECOND_TAG}" ]]; then
|
||||
BUILD_ARGS+=(--tag "${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}")
|
||||
fi
|
||||
|
||||
BUILD_ARGS+=(--push .)
|
||||
|
||||
echo
|
||||
echo ">>> Build + Push"
|
||||
echo "Image: ${FULL_IMAGE}"
|
||||
if [[ -n "${SECOND_TAG}" ]]; then
|
||||
echo "Zusatz: ${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}"
|
||||
fi
|
||||
echo "Platform: ${PLATFORM}"
|
||||
echo
|
||||
|
||||
cd "$ROOT"
|
||||
docker buildx build \
|
||||
--platform "$PLATFORM" \
|
||||
--tag "$FULL_IMAGE" \
|
||||
--push \
|
||||
.
|
||||
cd "${ROOT}"
|
||||
|
||||
docker buildx build "${BUILD_ARGS[@]}"
|
||||
|
||||
echo
|
||||
echo "Fertig: ${FULL_IMAGE}"
|
||||
echo "Fertig:"
|
||||
echo " ${FULL_IMAGE}"
|
||||
if [[ -n "${SECOND_TAG}" ]]; then
|
||||
echo " ${REGISTRY}/${IMAGE_PATH}:${SECOND_TAG}"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user