Join our Discord Server
Ajeet Raina Ajeet Singh Raina is a former Docker Captain, Community Leader and Distinguished Arm Ambassador. He is a founder of Collabnix blogging site and has authored more than 700+ blogs on Docker, Kubernetes and Cloud-Native Technology. He runs a community Slack of 9800+ members and discord server close to 2600+ members. You can follow him on Twitter(@ajeetsraina).

How to Set Up a PostgreSQL Replication Architecture Database in a Docker-Compose Environment

1 min read

A replication architecture database is a valuable approach for separating read and write responsibilities into different database servers. This allows for efficient scaling of the database based on the type of operations or transactions that occur. In this guide, we will set up a replication architecture database in a Docker environment using Docker Compose, specifically for our development environment.

Technologies Used

  • PostgreSQL
  • Docker Compose

Getting Started

  • Install Docker Desktop

Docker Compose Setup

Begin by creating a docker-compose.yaml file to define the services, configurations, and dependencies for the PostgreSQL replication setup.

version: "3"
services:
  postgresql-master:
    image: bitnami/postgresql
    restart: always
    ports:
      - '5432:5432'
    volumes:
      - postgresql_master_data:/bitnami/postgresql
      - ./db.sql:/docker-entrypoint-initdb.d/db.sql
    environment:
      - POSTGRESQL_PGAUDIT_LOG=READ,WRITE
      - POSTGRESQL_LOG_HOSTNAME=true
      - POSTGRESQL_REPLICATION_MODE=master
      - POSTGRESQL_REPLICATION_USER=repl_user
      - POSTGRESQL_REPLICATION_PASSWORD=repl_user
      - POSTGRESQL_USERNAME=postgres
      - POSTGRESQL_PASSWORD=postgres
      - POSTGRESQL_DATABASE=development_database
      - ALLOW_EMPTY_PASSWORD=yes

  postgresql-slave:
    image: bitnami/postgresql
    restart: always
    ports:
      - '5432'
    depends_on:
      - postgresql-master
    environment:
      - POSTGRESQL_PASSWORD=postgres
      - POSTGRESQL_MASTER_HOST=postgresql-master
      - POSTGRESQL_PGAUDIT_LOG=READ
      - POSTGRESQL_LOG_HOSTNAME=true
      - POSTGRESQL_REPLICATION_MODE=slave
      - POSTGRESQL_REPLICATION_USER=repl_user
      - POSTGRESQL_REPLICATION_PASSWORD=repl_user
      - POSTGRESQL_MASTER_PORT_NUMBER=5432
      - ALLOW_EMPTY_PASSWORD=yes

volumes:
  postgresql_master_data:
    driver: local

This docker-compose.yaml file defines two services: postgresql-master and postgresql-slave. The postgresql-master service acts as the master node, while the postgresql-slave service acts as the slave node.

Explanation of Key Configurations

  • PostgreSQL Master Service:
    • POSTGRESQL_REPLICATION_MODE=master: Specifies that this PostgreSQL instance is the master.
    • POSTGRESQL_REPLICATION_USER and POSTGRESQL_REPLICATION_PASSWORD: Credentials for replication.
    • POSTGRESQL_DATABASE: Name of the development database.
    • POSTGRESQL_PGAUDIT_LOG=READ,WRITE: Enables audit logging for read and write operations.
  • PostgreSQL Slave Service:
    • POSTGRESQL_REPLICATION_MODE=slave: Specifies that this PostgreSQL instance is the slave.
    • POSTGRESQL_MASTER_HOST: Points to the host of the master node.
    • POSTGRESQL_MASTER_PORT_NUMBER: Port number on which the master node is running.
    • POSTGRESQL_PGAUDIT_LOG=READ: Enables audit logging for read operations.

Running the Setup

To start the PostgreSQL replication setup, navigate to the directory containing the docker-compose.yaml file and run:

docker-compose up -d

This will launch the services in detached mode. You can then access the master and slave databases separately, and any changes made in the master will be replicated to the slave.

This Docker-Compose setup provides a convenient way to implement PostgreSQL database replication for your development environment. Adjust the configurations based on your specific requirements and scaling needs.

Keep Reading

  • How to convert visual images into video AI animation without a production team

    How to convert visual images into video AI animation without a production team

    Static Images Are Leaving Engagement on the Table If you’ve been publishing still images for your brand, product, or creative projects while your competitors are pushing video, you already know the gap is real. Video content consistently outperforms static imagery across nearly every major platform — higher reach on Instagram and TikTok, better click-through rates

    Read More

  • OpenCode, Ollama and  Docker Sandbox: An Isolated Agent Running a Local Model

    OpenCode, Ollama and Docker Sandbox: An Isolated Agent Running a Local Model

    AI coding agents are great right up until you stop and think about what they can actually reach. OpenCode, Claude Code, Codex, the whole crop of them, they all want a filesystem, a shell, and a network connection so they can do real work. On your laptop that means the same agent that just refactored

    Read More

  • Best Docker Books to Read in 2026

    Best Docker Books to Read in 2026

    Top Picks for Best Docker Books 2026 In 2026, Docker is no longer just a container runtime, it’s the substrate for modern application delivery, the foundation underneath Kubernetes, and increasingly, the operational layer for AI agents in production. Choosing the right book to learn it is harder than it used to be, because the field

    Read More

Have Queries? Join https://launchpass.com/collabnix

Ajeet Raina Ajeet Singh Raina is a former Docker Captain, Community Leader and Distinguished Arm Ambassador. He is a founder of Collabnix blogging site and has authored more than 700+ blogs on Docker, Kubernetes and Cloud-Native Technology. He runs a community Slack of 9800+ members and discord server close to 2600+ members. You can follow him on Twitter(@ajeetsraina).

Kubernetes Gateway API vs Ingress: What Changed and How…

Explore the transition from Kubernetes Ingress to the more versatile Gateway API. Learn the differences, migration steps, and how to leverage enhanced networking capabilities.
Collabnix Team
7 min read

What is Claude Code? How to Install and Use…

Discover Claude Code, the innovative agentic coding tool by Anthropic. Learn how to install and utilize its powerful AI features for enhanced software development...
Collabnix Team
6 min read
Join our Discord Server
Index