pgAgroal Container
PostgreSQL connection pooling for Docker and Kubernetes. Production defaults, verifiable builds, zero configuration files.
A container image that packages pgagroal for production use. Built from source, configured via environment variables, and ready to run in Docker Compose or Kubernetes without mounting configuration files.
pgagroal is a PostgreSQL connection pooler written in C by the PostgreSQL community. It operates at the protocol level with minimal latency overhead.
Quick start
docker pull elevarq/pgagroal:1.0.0
docker run -d --name pgagroal \
-p 6432:6432 \
-e PG_BACKEND_HOST=your-postgres-host \
-e PG_BACKEND_PORT=5432 \
elevarq/pgagroal:1.0.0
# Connect through pgagroal
psql -h localhost -p 6432 -U your_user -d your_dbMulti-arch image: linux/amd64 and linux/arm64. Production-ready defaults. No configuration files required.
Why this container
- --Consistent configuration — environment variables only, no config files to mount or template
- --Production defaults — connection limits, timeouts, and buffer sizes tuned for real workloads
- --Kubernetes-native — health check endpoints for readiness/liveness probes, Helm chart included
- --Hardened runtime — non-root execution, all capabilities dropped, read-only root filesystem
- --Signed and verifiable — SBOM, SLSA provenance, and Cosign signatures on every release
When to use it
Use pgAgroal Container when you need a connection pooler that handles high connection counts at the protocol level with minimal latency. It is especially useful in Kubernetes environments where applications create many short-lived connections, or where PgBouncer's transaction-mode limitations are a constraint.
Compatible with PostgreSQL 13 through 18.