build_and_push.sh
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
REGISTRY_DOMAIN="${REGISTRY_DOMAIN:-git.joeac.net}"
|
||||||
|
REGISTRY_USER="${REGISTRY_USER:-joeac}"
|
||||||
|
ARCHITECTURE="$(lscpu | grep ^Architecture: | cut -wf2)"
|
||||||
|
CONTAINER_NAME_PREFIX="${CONTAINER_NAME_PREFIX:-$([ "armv7" -eq $(echo "$ARCHITECTURE" | cut -c1-5) ] && "armv7/" || "")}"
|
||||||
|
ALPINE_VERSION="${ALPINE_VERSION:-$(head -n 1 alpine-version)}"
|
||||||
|
CONTAINER_PATTERN="${CONTAINER_PATTERN:-${1:-*}}"
|
||||||
|
|
||||||
|
for container in "${CONTAINER_PATTERN}"
|
||||||
|
do
|
||||||
|
if ( ! [ -d "$container" ] ) || ( ! [ -f "${container}/Dockerfile" ] )
|
||||||
|
then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
container_image_name="${REGISTRY_DOMAIN}/${REGISTRY_USER}/${CONTAINER_NAME_PREFIX}${container}
|
||||||
|
app_version="$(head -n 1 "$container/version")
|
||||||
|
podman build \
|
||||||
|
-t "${container_image_name}:latest" \
|
||||||
|
--build-arg "ALPINE_VERSION=${ALPINE_VERSION}" \
|
||||||
|
--build-arg "VERSION=${app_version}" \
|
||||||
|
"$container"
|
||||||
|
|
||||||
|
podman image tag "${container_image_name}:latest" "${container_image_name}:alpine"
|
||||||
|
alpine_version_part="${ALPINE_VERSION}"
|
||||||
|
while [ -n "${alpine_version_part}" ]
|
||||||
|
do
|
||||||
|
app_version_part="${app_version}"
|
||||||
|
while [ -n "${app_version_part}" ]
|
||||||
|
do
|
||||||
|
podman image tag "${container_image_name}:latest" "${container_image_name}:${app_version_part}-alpine${alpine_version_part}"
|
||||||
|
app_version_part=${app_version_part%.*}
|
||||||
|
done
|
||||||
|
podman image tag "${container_image_name}:latest" "${container_image_name}:alpine${alpine_version_part}"
|
||||||
|
alpine_version_part=${alpine_version_part%.*}
|
||||||
|
done
|
||||||
|
|
||||||
|
podman push "${container_image_name}:latest"
|
||||||
|
podman push "${container_image_name}:alpine"
|
||||||
|
alpine_version_part="${ALPINE_VERSION}"
|
||||||
|
while [ -n "${alpine_version_part}" ]
|
||||||
|
do
|
||||||
|
app_version_part="${app_version}"
|
||||||
|
while [ -n "${app_version_part}" ]
|
||||||
|
do
|
||||||
|
podman push "${container_image_name}:${app_version_part}-alpine${alpine_version_part}"
|
||||||
|
app_version_part=${app_version_part%.*}
|
||||||
|
done
|
||||||
|
podman push "${container_image_name}:alpine${alpine_version_part}"
|
||||||
|
alpine_version_part=${alpine_version_part%.*}
|
||||||
|
done
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user