Skip to main content

pgAgroal Container

PostgreSQL connection pooling for Docker and Kubernetes. Production defaults, verifiable builds, zero configuration files.

Open source

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_db

Multi-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.