3.9 KiB
Custom Container Images
This repository builds a small set of OCI/container images published at
git.ajpanton.se.
The images are intended to stay close to their upstream base images while adding a few commonly useful database/runtime extensions.
Images
| Image | Description |
|---|---|
git.ajpanton.se/ajp_anton/postgres-custom:18 |
PostgreSQL 18 with selected extension packages installed and pg_cron/VectorChord preloaded. |
git.ajpanton.se/ajp_anton/php8-pgsql:8 |
PHP 8 FPM on Alpine with PostgreSQL client runtime support and the pdo_pgsql PHP extension enabled. |
git.ajpanton.se/ajp_anton/python-tools:3 |
Python 3 task runner with ExifTool and a web control panel for mounted task scripts. |
Included Components
postgres-custom
Base image:
postgres:18- Moving upstream major-version tag. Patch releases are picked up when the image is rebuilt.
Installed from Debian/PostgreSQL apt repositories:
ca-certificateswgetpostgresql-18-cronpostgresql-18-pgvectorpostgresql-18-postgis-3
Installed from a GitHub release asset:
- VectorChord package
postgresql-18-vchord_0.5.3-1_amd64.deb - VectorChord is pinned to
0.5.3at this time.
Runtime defaults added by this image:
shared_preload_libraries=pg_cron,vchordcron.database_name=firecrawl
php8-pgsql
Base image:
php:8-fpm-alpine- Moving upstream major-version tag. Patch releases are picked up when the image is rebuilt.
Build-time package:
postgresql-dev
Runtime package:
libpq
Compiled PHP extension:
pdo_pgsql
The compiled extension and PHP config are copied from a build stage into the final runtime image.
python-tools
Base image:
python:3- The image follows the moving Python 3 tag. When upstream Python 3 moves to a new minor release, this image follows it on the next rebuild.
Installed from Debian apt repositories:
ca-certificatesexiftool
Pinned Python packages:
Flask==3.1.0waitress==3.0.2
Included application:
- A server-rendered web control panel for discovering and running reviewed, zero-input Python scripts mounted at runtime.
- Per-group task queues, SQLite run history, captured output, and task-process cancellation.
- The default command starts the control panel with
python -m app.
Intended use:
- Run reviewed, autonomous task scripts mounted at runtime, including metadata extraction scripts that need ExifTool.
- Use the included task control panel. Its generic deployment example and
application documentation are in
python-tools/. - Keep host systems clean by avoiding host-level package installs.
Tags
Moving deployment tags:
git.ajpanton.se/ajp_anton/postgres-custom:18git.ajpanton.se/ajp_anton/php8-pgsql:8git.ajpanton.se/ajp_anton/python-tools:3
Descriptive tags:
git.ajpanton.se/ajp_anton/postgres-custom:18-postgis3-vchord0.5.3git.ajpanton.se/ajp_anton/php8-pgsql:8-fpm-alpine
Convenience tags:
git.ajpanton.se/ajp_anton/postgres-custom:latestgit.ajpanton.se/ajp_anton/php8-pgsql:latestgit.ajpanton.se/ajp_anton/python-tools:latest
Tags are mutable. A weekly candidate build only repoints a deployment tag when its content fingerprint changed: base image, build context, build arguments, installed packages, or image-specific generated files.
Update Cadence
Images are rebuilt weekly. They may also be rebuilt after repository changes or manual runs. Each run builds a candidate without cache, then publishes it only when its content fingerprint differs from the current deployment image.
Each rebuild pulls the current upstream base image and installs the currently available apt/apk packages. If the base image or repository packages changed, the resulting image digest changes and the same tag points to the new image.
Pinned build inputs do not update automatically. In this repository, VectorChord
is pinned to 0.5.3; changing it requires a repository update.