init
This commit is contained in:
12
docker/pgsql/init-master.sh
Executable file
12
docker/pgsql/init-master.sh
Executable file
@@ -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 'crm-ecosplay';
|
||||
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"
|
||||
2
docker/pgsql/init-master.sql
Normal file
2
docker/pgsql/init-master.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'crm-ecosplay';
|
||||
SELECT pg_create_physical_replication_slot('slave_slot');
|
||||
20
docker/pgsql/init-slave.sh
Executable file
20
docker/pgsql/init-slave.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
until pg_isready -h db-master -U crm-ecosplay; do
|
||||
echo "Waiting for master..."
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "db-master:5432:replication:replicator:crm-ecosplay" > /tmp/.pgpass
|
||||
chown postgres:postgres /tmp/.pgpass
|
||||
chmod 600 /tmp/.pgpass
|
||||
|
||||
rm -rf "$PGDATA"/*
|
||||
chown postgres:postgres "$PGDATA"
|
||||
chmod 700 "$PGDATA"
|
||||
su-exec postgres env PGPASSFILE=/tmp/.pgpass pg_basebackup -h db-master -D "$PGDATA" -U replicator -Fp -Xs -P -R
|
||||
|
||||
echo "hot_standby = on" >> "$PGDATA/postgresql.conf"
|
||||
|
||||
exec su-exec postgres "$@"
|
||||
22
docker/pgsql/pgbouncer-dev.ini
Normal file
22
docker/pgsql/pgbouncer-dev.ini
Normal file
@@ -0,0 +1,22 @@
|
||||
[databases]
|
||||
crm_ecosplay = host=database port=5432 dbname=crm_ecosplay
|
||||
crm_ecosplay_test = host=database port=5432 dbname=crm_ecosplay_test
|
||||
|
||||
[pgbouncer]
|
||||
listen_addr = 0.0.0.0
|
||||
listen_port = 6432
|
||||
auth_type = plain
|
||||
auth_file = /etc/pgbouncer/userlist.txt
|
||||
pool_mode = transaction
|
||||
max_client_conn = 200
|
||||
default_pool_size = 20
|
||||
min_pool_size = 5
|
||||
reserve_pool_size = 5
|
||||
reserve_pool_timeout = 3
|
||||
server_lifetime = 3600
|
||||
server_idle_timeout = 600
|
||||
log_connections = 0
|
||||
log_disconnections = 0
|
||||
ignore_startup_parameters = extra_float_digits
|
||||
admin_users = app
|
||||
stats_users = app
|
||||
1
docker/pgsql/userlist-dev.txt
Normal file
1
docker/pgsql/userlist-dev.txt
Normal file
@@ -0,0 +1 @@
|
||||
"app" "secret"
|
||||
Reference in New Issue
Block a user