Files
minideb/pushmanifest
T
Carlos Rodríguez Hernández a76f97db15 Deprecate Debian 10 (#165)
* Deprecate Debian 10

Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>

* Change debootstrap

Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>

* Remove buster from checks

Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>

* Update bullseye

Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>

---------

Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>
2024-07-01 18:11:30 +02:00

70 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -e
set -u
set -o pipefail
DISTS=${DISTS:-"bullseye
bookworm
latest
"}
BASENAME=bitnami/minideb
PLATFORMS=${PLATFORMS:-amd64 arm64}
DRY_RUN=${DRY_RUN:-}
read -r -a ARCHS <<<"$PLATFORMS"
run_docker() {
if [[ -n "${DRY_RUN:-}" ]]; then
echo "DRY RUN docker ${*}"
else
docker "$@"
fi
}
list_includes() {
local list=""
local element=""
list=${1?You must provide a list}
element=${2:?You must provide an element}
for candidate in $list; do
if [[ "$candidate" == "$element" ]]; then
true
return
fi
done
false
return
}
if [ -n "${DOCKER_PASSWORD:-}" ]; then
echo "$DOCKER_PASSWORD" | run_docker login -u "$DOCKER_USERNAME" --password-stdin
fi
push_manifest() {
local image=""
local archs=""
image="${1:?You must provide the image base to publish}"
archs=("${@:2}")
local arch_images=()
for arch in "${archs[@]}"; do
arch_images+=("$image-$arch")
done
run_docker manifest create "$image" "${arch_images[@]}"
run_docker manifest push "$image"
}
tags=()
for DIST in $DISTS; do
tags+=("$DIST")
done
repositories=("$BASENAME")
for tag in "${tags[@]}"; do
for repo in "${repositories[@]}"; do
push_manifest "$repo:$tag" "${ARCHS[@]}"
done
done