Sign inSign up
Spilo

dhi.io/spilo

Spilo

CIS
FIPS
STIG
linux/amd64
linux/arm64

HA PostgreSQL appliance with Patroni, a multi-major PostgreSQL bundle, and WAL-G backups.

Image

pushed 4 hours ago

View image detail
Platforms

linux/amd64, linux/arm64

Size

328.22 MB

for linux/amd64

Packages

578

for linux/amd64

Support

Active support

Tools included

patroni, patronictl, postgres, psql, pg_upgrade, wal-g, pgbouncer, pgqd

What's includedWhy it matters
SLSA Provenance

Build Level 3

Tamper-evident proof of how and from what sources this image was built. Build Level 3 is the highest the SLSA build track defines.

SBOM

CycloneDX SBOM + SPDX SBOM

A software bill of materials in both CycloneDX and SPDX formats so it drops straight into your existing tooling. Audit exactly what you're shipping.

VEX

A Vulnerability Exploitability exchange document, Docker's assessment of which CVEs actually affect this image and which don't apply, so you can focus on real risk instead of chasing false positives.

DHI Image Sources

Available

A link to everything used to build the image, package source code, Git repos, and build files, so you can audit or reproduce the build and stay compliant with open source licenses.

CVEs
4
17
4
81
4

Every known vulnerability in this image, shown in full rather than hidden. The VEX data flags which ones actually apply, so you can tell real exposure from noise before you ship.

Changelog

Exactly what changed in this build, down to the package bumps and fixes behind the version you're pulling.

Secrets scan

Verifies no keys, tokens, or credentials were accidentally baked into the image.

Virus scan

The image layers were scanned for known malware signatures before publishing.


About Spilo

Spilo is Zalando's high-availability PostgreSQL appliance: one image that combines Patroni⁠ for cluster management and automatic failover, a bundle of PostgreSQL major versions for in-place pg_upgrade migrations, WAL-G⁠ for continuous archiving and base backups, and the PostgreSQL extension set the Zalando fleet runs in production (PostGIS, TimescaleDB, pgvector, pg_partman, pglogical, pgaudit, and many more). It is the image the Zalando postgres-operator⁠ deploys, and it also runs standalone against an etcd, Consul, or ZooKeeper DCS.

This image builds Spilo from the maintained 4.1 source line with PostgreSQL 17 as the primary version and PostgreSQL 14, 15, and 16 bundled for in-place major upgrades. The PostgreSQL servers, pgbouncer, and WAL-G install from Docker Hardened packages, and every extension is compiled from pinned upstream sources against those servers. The older majors exist as pg_upgrade sources and follow upstream's five-year support policy (PostgreSQL 14 ends in November 2026).

Deviations from the upstream ghcr.io/zalando/spilo-* images:

  • PostgreSQL 17 is the primary on the Spilo 4.1 line (upstream publishes the 4.1 line only as a PostgreSQL 18-primary image; the frozen upstream spilo-17 repository ends at Spilo 4.0-p3).
  • The embedded etcd server and etcdctl (end-of-life v3.3) are not shipped; point the image at a real DCS.
  • The Ubuntu 18.04 compatibility locale archive is not shipped; USE_OLD_LOCALES is unsupported (see the migration notes in the guides).
  • pg_view is not shipped.
  • chrt/renice carry no file capabilities; grant CAP_SYS_NICE at runtime if you want Patroni real-time scheduling.
  • The container runs as the postgres user (uid 70) by default instead of root.

About Docker Hardened Images

Docker Hardened Images are built to meet the highest security and compliance standards. They provide a trusted foundation for containerized workloads by incorporating security best practices from the start.

Why use Docker Hardened Images?

These images are published with near-zero known CVEs, include signed provenance, and come with a complete Software Bill of Materials (SBOM) and VEX metadata. They're designed to secure your software supply chain while fitting seamlessly into existing Docker workflows.

Trademarks

PostgreSQL® is a trademark of PostgreSQL Community Association of Canada. TimescaleDB® is a trademark of Timescale, Inc. All rights in those marks are reserved to their respective owners. Any use by Docker is for referential purposes only and does not indicate sponsorship, endorsement, or affiliation.

This listing is prepared by Docker. All third-party product names, logos, and trademarks are the property of their respective owners and are used solely for identification. Docker claims no interest in those marks, and no affiliation, sponsorship, or endorsement is implied.