PostgreSQL 18 + pgEdge + VectorChord + Apache AGE + PostGIS + extras
2.6K
PostgreSQL 18 container image based on the pgEdge Enterprise Postgres image, extended with VectorChord, Apache AGE, pg_graphql, and several common extensions, published as a single multi-arch (amd64 + arm64) tag.
Layered on top of ghcr.io/pgedge/pgedge-postgres:18-spock5-standard (Rocky 9
UBI, PostgreSQL 18.3, Spock 5.0.6):
| Extension | Purpose | Origin |
|---|---|---|
spock | Logical replication / multi-active | preinstalled |
vector (pgvector) | Vector type + base similarity ops | preinstalled |
vchord | VectorChord — vector index AM (vchordrq) | added (this image) |
vchord_bm25 | BM25 ranking from VectorChord suite | preinstalled |
postgis | Spatial types and operators | preinstalled |
age | Apache AGE — Cypher / openCypher graph queries | added (this image) |
pg_graphql | GraphQL API directly from PostgreSQL | added (this image) |
pg_cron | In-database cron scheduler | preinstalled |
pg_stat_statements | Query performance stats | preinstalled |
pg_trgm | Trigram fuzzy text search | preinstalled |
pgaudit | Session and object audit logging | preinstalled |
:vXX.Y-N — pinned multi-arch manifest:vXX.Y-N-amd64 / :vXX.Y-N-arm64 — per-arch fragments:latest — latest buildPublished in parallel to:
georgelpreput/postgres-aioregistry.gitlab.com/<group>/postgres-aiodocker run -d \
-e POSTGRES_PASSWORD=secret \
-e POSTGRES_USER=app \
-e POSTGRES_DB=app \
-p 5432:5432 \
-v pgdata:/var/lib/pgsql/18/data \
georgelpreput/postgres-aio:latest
The container reuses the upstream postgres entrypoint, so the standard
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB / POSTGRES_INITDB_ARGS
env vars and /docker-entrypoint-initdb.d/ mount point all work as expected.
shared_preload_libraries is set to
pgaudit,pg_cron,pg_stat_statements,spock,vchord,age and
track_commit_timestamp=on (required by Spock's default conflict resolution).postgres database (the default for
cron.database_name). To schedule jobs that run in another database, use
cron.schedule_in_database(name, schedule, sql, db).LOAD 'age';
SET search_path = ag_catalog, "$user", public;
Native per-arch builds (amd64/arm64). Versions are pinned in versions.env.
make build # builds for the host's native arch
make smoke # smoke-tests the just-built image
# After `docker login docker.io` and `docker login registry.gitlab.com`:
make push # pushes <version>-<arch> to both registries
make manifest # combines into multi-arch <version> + latest tags
CI (.gitlab-ci.yml) builds both arches on native runners (tags amd64 /
arm64), runs smoke tests, then publishes the manifest. Renovate
(renovate.json) bumps the version pins on stable upstream releases.
Content type
Image
Digest
sha256:e019b134a…
Size
513.7 MB
Last updated
about 1 month ago
docker pull georgelpreput/postgres-aio