docker/postgres/README.md
Extends the official postgres image with packages required by DataHub when using PostgreSQL as the backing store:
pg_partmanpg_cron (required once quickstart compose uses this image with shared_preload_libraries including pg_cron; stock postgres in compose does not preload it yet.)CI publishes a multi-arch manifest to Docker Hub (default namespace acryldata, repository datahub-postgres). The default tag is datahubPostgresImageTag in build.gradle (defaults to 17.5-extensions-v1). After quickstart compose is pinned to that image, align compose env defaults and metadata-io test image tags to match.
Use the GitHub Actions workflow Publish datahub-postgres (.github/workflows/publish-datahub-postgres.yml):
17.5, upstream FROM postgres:… tag), extensions_image_version (default 1, becomes …-extensions-v1), and docker_registry if needed. The workflow builds tag {postgres_base_version}-extensions-v{extensions_image_version}.Gradle entry point (equivalent to CI defaults): ./gradlew :docker:buildImagespublishPostgres -PmatrixBuild=true -PpostgresVersion=17.5 -PdatahubPostgresImageTag=17.5-extensions-v1 -Ptag=17.5-extensions-v1 -PdockerRegistry=acryldata -PdockerPush=true (requires Depot + registry credentials as in CI).
When you need a new immutable tag (e.g. after Postgres major or package changes):
datahubPostgresImageTag in build.gradle (or pass -PdatahubPostgresImageTag=… for one-off builds).-Ptag substring, then merge the PR../gradlew :docker:postgres:docker
Optional Postgres major: ./gradlew :docker:postgres:docker -PpostgresVersion=17.5