#!/bin/sh -e REGISTRY_DOMAIN="${REGISTRY_DOMAIN:-git.joeac.net}" REGISTRY_USER="${REGISTRY_USER:-joeac}" ARCHITECTURE="$(lscpu | grep ^Architecture: | sed "s/Architecture:[[:space:]]*//")" CONTAINER_NAME_PREFIX="${CONTAINER_NAME_PREFIX:-$([ "armv7" = $(echo "$ARCHITECTURE" | cut -c1-5) ] && echo "armv7/" || echo "")}" 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