#!/bin/bash dist=${1:-bookworm} version=${2:-5.7.4} DATE=$(date +"%Y-%m-%d") KAM_ARCHIVE_REPO="https://deb-archive.kamailio.org/repos/kamailio-${version}" get_kam_repo() { if ! wget -q -O /tmp/Packages "${KAM_ARCHIVE_REPO}/dists/${dist}/main/binary-amd64/Packages" ; then echo "https://deb.kamailio.org/kamailio${kam_version}" else echo "${KAM_ARCHIVE_REPO}" fi } get_kam_version() { if [[ ${version} =~ 4\.4\.[0-9] ]] ; then kam_version="44" elif [[ ${version} =~ 5\.([0-9])\.[0-9] ]] ; then kam_version="5${BASH_REMATCH[1]}" else echo "unknown kamailio version '${version}'" >&2 fi } kam_packages() { if ! wget -q -O /tmp/Packages "${KAM_ARCHIVE_REPO}/dists/${dist}/main/binary-amd64/Packages" ; then KAM_REPO="https://deb.kamailio.org/kamailio${kam_version}" wget -q -O /tmp/Packages "${KAM_REPO}/dists/${dist}/main/binary-amd64/Packages" fi repo_version=$(awk '/Version:/ { print $2 }' /tmp/Packages| head -1) if [[ ${repo_version} =~ ^${version} ]] ; then awk -vver="${repo_version}" '/Package:/ { print $2"="ver}' /tmp/Packages | xargs else echo "packages in repository \"deb ${KAM_REPO} ${dist} main\" doesn't match version: [${version}]" >&2 echo "version in repository: [${repo_version}]" >&2 fi } create_dockerfile() { cat >"${DOCKERFILE}" < # Important! Update this no-op ENV variable when this Dockerfile # is updated with the current date. It will force refresh of all # of the base images and things like 'apt-get update' won't be using # old cached versions when the Dockerfile is built. ENV REFRESHED_AT ${DATE} EOF if ${archived} ; then cat >>"${DOCKERFILE}" <>"${DOCKERFILE}" < \ /etc/apt/sources.list.d/kamailio.list EOF if ${apt_key} ; then echo "RUN wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | apt-key add -" >> ${DOCKERFILE} else cat >>"${DOCKERFILE}" <>"${DOCKERFILE}" <