# Custom container images Small custom container images published to the Gitea container registry at `git.ajpanton.se`. ## Images | Image | Purpose | Base | | --- | --- | --- | | `git.ajpanton.se/ajp_anton/postgres-custom:18` | PostgreSQL with `pg_cron`, `pgvector`, PostGIS, and VectorChord | `postgres:18` | | `git.ajpanton.se/ajp_anton/php8-pgsql:8` | PHP-FPM with the `pdo_pgsql` extension | `php:8-fpm-alpine` | There is no custom nginx image here yet. The current web-server image can stay on upstream `nginx:*alpine` unless custom nginx modules or baked-in config are needed. ## How Updates Work The workflow in `.gitea/workflows/build-images.yaml` rebuilds and pushes these images on: - pushes to `main` - manual workflow runs - the weekly schedule in the workflow Each scheduled run asks Docker to pull the current base image before building. During the build, package managers also install the currently available packages from their configured repositories. If the upstream base image or installed packages have changed, the resulting image digest changes even when the tag name stays the same. Container update tools can then watch the pushed tags by digest. When the remote digest for a watched tag differs from the locally running image digest, the tool can report or apply an update. Pinned build arguments, such as `VCHORD_VERSION`, do not update themselves. Changing those values requires a commit or an additional automation step that checks upstream releases and updates this repository. ## Publishing The workflow publishes these tags: - `git.ajpanton.se/ajp_anton/postgres-custom:18` - `git.ajpanton.se/ajp_anton/postgres-custom:18-postgis3-vchord0.5.3` - `git.ajpanton.se/ajp_anton/postgres-custom:latest` - `git.ajpanton.se/ajp_anton/php8-pgsql:8` - `git.ajpanton.se/ajp_anton/php8-pgsql:8-fpm-alpine` - `git.ajpanton.se/ajp_anton/php8-pgsql:latest` The workflow uses Gitea Actions and the built-in `GITEA_TOKEN` with package write permission.