#!/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" podman push "${container_image_name}:alpine" alpine_version_part="${ALPINE_VERSION}" while true do app_version_part="${app_version}" while true do podman image tag "${container_image_name}:latest" "${container_image_name}:${app_version_part}-alpine${alpine_version_part}" podman push "${container_image_name}:${app_version_part}-alpine${alpine_version_part}" if [ "${app_version_part}" = ${app_version_part%.*} ] then break else app_version_part=${app_version_part%.*} fi done podman image tag "${container_image_name}:latest" "${container_image_name}:alpine${alpine_version_part}" podman push "${container_image_name}:alpine${alpine_version_part}" if [ -z "${app_version_part}" ] then break elif [ "${app_version_part}" = ${app_version_part%.*} ] then app_version_part="" else app_version_part=${app_version_part%.*} fi done done