A batteries-included PostgreSQL image for time-series, geospatial, vector/AI, and
Chinese full-text search workloads — built on the official postgres:18.6
(Debian trixie) base, with a wide range of extensions pre-installed and enabled.
Optimized with a multi-stage build: all compile toolchains live only in the builder stage, so the final runtime image stays lean and free of
gcc/make/cmake.
| Tag | Description |
|---|---|
18.6, latest | PostgreSQL 18.6, multi-arch (linux/amd64, linux/arm64) |
postgres:18.6 — Debian trixie| Extension | Version / Source | Notes |
|---|---|---|
| TimescaleDB | timescaledb-2-postgresql-18 (apt) | Time-series; preloaded |
| PostGIS | postgresql-18-postgis-3 (apt) | Includes postgis_topology |
| pgRouting | postgresql-18-pgrouting (apt) | Geospatial routing |
| pg_cron | postgresql-18-cron (apt) | Scheduled jobs; runs in postgres db by default |
| pg_partman | postgresql-18-partman 5.5.0 (apt) | Partition management; installed in partman schema |
| pg_stat_statements | contrib (base image) | Query statistics; preloaded |
| plpython3u | postgresql-plpython3-18 (apt) | Untrusted Python 3 procedural language |
| pgvector | compiled from source | Vector similarity search (vector) |
| pgmq | compiled from source | Message queue over PostgreSQL tables |
| zhparser | compiled (scws 1.2.3) | Chinese full-text segmentation (zhparser) |
| pgmqtt | 0.5.1 (prebuilt) | MQTT / logical-decoding CDC; preloaded |
| pg_search | ParadeDB 0.26.1 (prebuilt) | BM25 full-text search; preloaded; needs pgvector |
The following are set in shared_preload_libraries:
timescaledb, pg_stat_statements, pg_cron, pgmqtt, pg_search
Other tuned settings (applied to postgresql.conf.sample):
| Setting | Value |
|---|---|
wal_level | logical (required by pgmqtt CDC) |
output_plugin_libraries | pgoutput, test_decoding, pgmqtt |
timescaledb.telemetry_level | off |
cron.database_name | postgres |
pgmqtt.database | postgres |
The init script (/docker-entrypoint-initdb.d/1.init-postgres.sh) automatically
creates all extensions on first start:
timescaledb, postgis, postgis_topology, pg_stat_statements, plpython3uvector, pgmq, pgmqtt, pg_searchpg_partman (in the partman schema)pg_cron in the default postgres databaseIt also prints the PostgreSQL version and the enabled-extension list on boot.
pg_partman auto-maintenance is off by default. To enable, uncomment the
cron.schedule('pg-partman-maintenance', ...)line ininit-postgres.shto drivepartman.run_maintenance_proc()viapg_cron.
Same as the official postgres image:
docker run -d \
--name pg \
-e POSTGRES_PASSWORD=mysecretpassword \
-p 5432:5432 \
-p 1883:1883 \
supernpc/postgres:18.6
Persist data with a volume:
docker run -d \
--name pg \
-e POSTGRES_PASSWORD=mysecretpassword \
-v pgdata:/var/lib/postgresql/data \
-p 5432:5432 \
-p 1883:1883 \
supernpc/postgres:18.6
docker buildx for linux/amd64 and linux/arm64.scws 1.2.3 runtime library (bundled, LD_LIBRARY_PATH=/opt/scws/lib).pgvector already enabled — both are wired up out of the box.wal_level=logical is already set.-p 1883:1883 (shown in the usage examples above).Content type
Image
Digest
sha256:18e6f213e…
Size
526.6 MB
Last updated
12 days ago
docker pull supernpc/postgres