This project can be used to deploy pgpool2 inside a Docker container for transparent failover between two postgresql hosts without requiring a floating IP address.
It relies on Alpine Linux - Edge.
- Pgpool-II:
3.6.1
(release notes) - libpq:
9.6.2-r1
- postgresql-client:
9.6.2-r1
sudo docker run --name pgpool2 -e PGPOOL_BACKENDS=1:127.0.0.1:5432,2:127.0.0.1:5433 -p 5432:5432/tcp manuc66/pgpool2-container-alpine:latest
version: '3'
services:
mypostgres:
image: postgres:9.6-alpine
pgpool2:
image: ca0abinary/pgpool2-container:latest
depends_on:
- mypostgres
environment:
- PGPOOL_BACKENDS=1:mypostgres:5432
ports:
- 5432:5432/tcp
PCP_PORT - The port used to listen for PCP commands. (default: 9898)
PCP_USER - The user allowed to execute PCP commands. (default: postgres)
PCP_USER_PASSWORD - The pcp user password. (default: bettervoice)
PGPOOL_PORT - The port used by pgpool2 to listen for client connections. (default: 5432)
PGPOOL_BACKENDS - A comma separated list of PostgeSQL server backends. The format for each backend is as follows: INDEX:HOST:PORT (default: 1:localhost:5432)