diff --git a/ansible/docker-compose-prod.yml.j2 b/ansible/docker-compose-prod.yml.j2 index 342ee8a..1ab0991 100644 --- a/ansible/docker-compose-prod.yml.j2 +++ b/ansible/docker-compose-prod.yml.j2 @@ -37,7 +37,7 @@ services: - hot_standby=on volumes: - db-master-data:/var/lib/postgresql/data - - ./docker/pgsql/init-master.sql:/docker-entrypoint-initdb.d/init-master.sql + - ./docker/pgsql/init-master.sh:/docker-entrypoint-initdb.d/init-master.sh healthcheck: test: ["CMD-SHELL", "pg_isready -U e-ticket -d e-ticket"] interval: 5s diff --git a/docker/pgsql/init-master.sh b/docker/pgsql/init-master.sh new file mode 100755 index 0000000..1d9e0a8 --- /dev/null +++ b/docker/pgsql/init-master.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'e-ticket'; + SELECT pg_create_physical_replication_slot('slave_slot'); +EOSQL + +echo "host replication replicator 0.0.0.0/0 md5" >> "$PGDATA/pg_hba.conf" +echo "host all all 0.0.0.0/0 md5" >> "$PGDATA/pg_hba.conf" + +pg_ctl reload -D "$PGDATA"