This commit is contained in:
2024-08-13 09:20:08 +03:00
parent 1f56389cbd
commit dea7d7cd0e
26 changed files with 965 additions and 310 deletions

51
build-scripts/image-base.sh Executable file
View File

@@ -0,0 +1,51 @@
#!/bin/sh
set -ef
cd "$(dirname "$0")/.."
set -a
BUILDAH_FORMAT="${BUILDAH_FORMAT:-docker}"
BUILDAH_ISOLATION="${BUILDAH_ISOLATION:-chroot}"
BUILDAH_NETWORK="${BUILDAH_NETWORK:-host}"
set +a
PYTHONTAG="${PYTHONTAG:-3.11.9-slim-bookworm}"
grab_site_packages() {
podman run \
--pull=always --rm \
--entrypoint='[]' \
--user=nobody:nogroup \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
-e MALLOC_ARENA_MAX=2 \
-e PYTHONUNBUFFERED=1 \
-e PYTHONDONTWRITEBYTECODE=1 \
"$1" \
python3 -c 'import site;print(site.getsitepackages()[0])'
}
PYTHON_SITE_PACKAGES=$(grab_site_packages "docker.io/python:${PYTHONTAG}")
[ -n "${PYTHON_SITE_PACKAGES:?}" ]
img="docker.io/rockdrilla/postgresql:base-v1"
buildah bud \
-f ./Dockerfile.base \
-t "${img}" \
--pull=missing --no-cache --squash \
--build-arg "PYTHONTAG=${PYTHONTAG}" \
--env "PYTHON_SITE_PACKAGES=${PYTHON_SITE_PACKAGES}" \
--unsetenv GPG_KEY \
--unsetenv PYTHON_PIP_VERSION \
--unsetenv PYTHON_SETUPTOOLS_VERSION \
--unsetenv PYTHON_GET_PIP_SHA256 \
--unsetenv PYTHON_GET_PIP_URL \
c=$(buildah from --pull=never "${img}") || true
if [ -z "$c" ] ; then
buildah rmi -f "${img}"
exit 1
fi
buildah config --created-by /usr/local/share/Dockerfile.base "$c"
buildah commit --rm --squash "$c" "${img}"

16
build-scripts/image-deps.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
set -ef
cd "$(dirname "$0")/.."
set -a
BUILDAH_FORMAT="${BUILDAH_FORMAT:-docker}"
BUILDAH_ISOLATION="${BUILDAH_ISOLATION:-chroot}"
BUILDAH_NETWORK="${BUILDAH_NETWORK:-host}"
set +a
img="docker.io/rockdrilla/postgresql:deps-v1"
exec buildah bud \
-f ./Dockerfile.deps \
-t "${img}" \
--pull=missing --no-cache

31
build-scripts/image.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
set -ef
cd "$(dirname "$0")/.."
set -a
BUILDAH_FORMAT="${BUILDAH_FORMAT:-docker}"
BUILDAH_ISOLATION="${BUILDAH_ISOLATION:-chroot}"
BUILDAH_NETWORK="${BUILDAH_NETWORK:-host}"
set +a
POSTGRESQL_VERSION="${1:-16.4}"
PG_MAJOR="${POSTGRESQL_VERSION%%.*}"
img="docker.io/rockdrilla/postgresql:${POSTGRESQL_VERSION}"
deps="docker.io/rockdrilla/postgresql:deps-v1"
c=$(buildah from --pull=missing "${deps}")
[ -n "${c:?}" ]
buildah config --env "POSTGRESQL_VERSION=${POSTGRESQL_VERSION}" "$c"
buildah config --env "PG_MAJOR=${PG_MAJOR}" "$c"
buildah commit --rm "$c" "${img}-env"
unset c
buildah bud \
-f ./Dockerfile \
-t "${img}" \
--pull=missing --no-cache \
--build-arg "DEPS_IMAGE=${img}-env" \
--build-arg "UPSTREAM_IMAGE_VERSION=${POSTGRESQL_VERSION}" \
podman image rm "${img}-env"