mirror of
https://github.com/wassname/docker-postgresql.git
synced 2026-06-28 22:36:20 +08:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ca479d90cf | |||
| 8aa5c9b64f | |||
| 728f606b4d | |||
| b5dd975ad1 | |||
| 693995dd2b | |||
| 7601996544 | |||
| 4d92cfc63e | |||
| 6d98301424 | |||
| 4fa09528b6 | |||
| a443dfb2d9 | |||
| b75f1ea632 | |||
| a934d8131c | |||
| 8f331ff0b3 | |||
| d933707cad | |||
| f5f7c094a1 | |||
| ba8244feea | |||
| fae08e9091 | |||
| eedfc6a1c9 | |||
| 57f7f6597c | |||
| fbc06c1604 |
+4
-4
@@ -1,4 +1,4 @@
|
||||
FROM sameersbn/ubuntu:14.04.20150825
|
||||
FROM sameersbn/ubuntu:14.04.20151117
|
||||
MAINTAINER sameer@damagehead.com
|
||||
|
||||
ENV PG_VERSION=9.4 \
|
||||
@@ -7,14 +7,14 @@ ENV PG_VERSION=9.4 \
|
||||
PG_RUNDIR=/run/postgresql \
|
||||
PG_LOGDIR=/var/log/postgresql
|
||||
|
||||
ENV PG_CONFDIR="/etc/postgresql/${PG_VERSION}/main" \
|
||||
PG_BINDIR="/usr/lib/postgresql/${PG_VERSION}/bin" \
|
||||
ENV PG_BINDIR="/usr/lib/postgresql/${PG_VERSION}/bin" \
|
||||
PG_CONFDIR="${PG_HOME}/${PG_VERSION}/main" \
|
||||
PG_DATADIR="${PG_HOME}/${PG_VERSION}/main"
|
||||
|
||||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
||||
&& echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y postgresql-${PG_VERSION} postgresql-client-${PG_VERSION} postgresql-contrib-${PG_VERSION} \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql-${PG_VERSION} postgresql-client-${PG_VERSION} postgresql-contrib-${PG_VERSION} \
|
||||
&& rm -rf ${PG_HOME} \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
all: build
|
||||
|
||||
build:
|
||||
@docker build --tag=${USER}/postgresql .
|
||||
@docker build --tag=sameersbn/postgresql .
|
||||
|
||||
release: build
|
||||
@docker build --tag=${USER}/postgresql:$(shell cat VERSION) .
|
||||
@docker build --tag=sameersbn/postgresql:$(shell cat VERSION) .
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[](https://circleci.com/gh/sameersbn/docker-postgresql)
|
||||
[](https://circleci.com/gh/sameersbn/docker-postgresql) [](https://quay.io/repository/sameersbn/postgresql)
|
||||
|
||||
# Table of Contents
|
||||
|
||||
@@ -57,10 +57,12 @@ In your issue report please make sure you provide the following information:
|
||||
|
||||
# Installation
|
||||
|
||||
Pull the latest version of the image from the docker index. This is the recommended method of installation as it is easier to update image in the future. These builds are performed by the **Docker Trusted Build** service.
|
||||
Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/sameersbn/postgresql) and is the recommended method of installation.
|
||||
|
||||
> **Note**: Builds are also available on [Quay.io](https://quay.io/repository/sameersbn/postgresql)
|
||||
|
||||
```bash
|
||||
docker pull sameersbn/postgresql:9.4-4
|
||||
docker pull sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
Alternately you can build the image yourself.
|
||||
@@ -76,7 +78,7 @@ docker build -t="$USER/postgresql" .
|
||||
Run the postgresql image
|
||||
|
||||
```bash
|
||||
docker run --name postgresql -d sameersbn/postgresql:9.4-4
|
||||
docker run --name postgresql -d sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
The simplest way to login to the postgresql container as the administrative `postgres` user is to use the `docker exec` command to attach a new process to the running container and connect to the postgresql server over the unix socket.
|
||||
@@ -100,7 +102,7 @@ The updated run command looks like this.
|
||||
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-v /opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql:9.4-4
|
||||
-v /opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
This will make sure that the data stored in the database is not lost when the image is stopped and started again.
|
||||
@@ -114,7 +116,7 @@ To create a new user you should specify the `DB_USER` and `DB_PASS` variables. T
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'DB_USER=dbuser' -e 'DB_PASS=dbpass' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
**NOTE**
|
||||
@@ -125,7 +127,7 @@ Similarly, you can also create a new database by specifying the database name in
|
||||
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'DB_NAME=dbname' sameersbn/postgresql:9.4-4
|
||||
-e 'DB_NAME=dbname' sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
You may also specify a comma separated list of database names in the `DB_NAME` variable. The following command creates two new databases named *dbname1* and *dbname2* (p.s. this feature is only available in releases greater than 9.1-1).
|
||||
@@ -133,7 +135,7 @@ You may also specify a comma separated list of database names in the `DB_NAME` v
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'DB_NAME=dbname1,dbname2' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
If the `DB_USER` and `DB_PASS` variables are also specified while creating the database, then the user is granted access to the database(s).
|
||||
@@ -143,11 +145,13 @@ For example,
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'DB_USER=dbuser' -e 'DB_PASS=dbpass' -e 'DB_NAME=dbname' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
will create a user *dbuser* with the password *dbpass*. It will also create a database named *dbname* and the *dbuser* user will have full access to the *dbname* database.
|
||||
|
||||
The `DB_LOCALE` environment variable can be used to configure the locale used for database creation. Its default value is set to C.
|
||||
|
||||
The `PSQL_TRUST_LOCALNET` environment variable can be used to configure postgres to trust connections on the same network. This is handy for other containers to connect without authentication. To enable this behavior, set `PSQL_TRUST_LOCALNET` to `true`.
|
||||
|
||||
For example,
|
||||
@@ -155,7 +159,7 @@ For example,
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'PSQL_TRUST_LOCALNET=true' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
This has the effect of adding the following to the `pg_hba.conf` file:
|
||||
@@ -177,7 +181,7 @@ docker run --name='psql-master' -it --rm \
|
||||
-e 'PSQL_MODE=master' -e 'PSQL_TRUST_LOCALNET=true' \
|
||||
-e 'REPLICATION_USER=replicator' -e 'REPLICATION_PASS=replicatorpass' \
|
||||
-e 'DB_NAME=dbname' -e 'DB_USER=dbuser' -e 'DB_PASS=dbpass' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
Create a streaming replication instance
|
||||
@@ -188,7 +192,7 @@ docker run --name='psql-slave' -it --rm \
|
||||
-e 'PSQL_MODE=slave' -e 'PSQL_TRUST_LOCALNET=true' \
|
||||
-e 'REPLICATION_HOST=psql-master' -e 'REPLICATION_PORT=5432' \
|
||||
-e 'REPLICATION_USER=replicator' -e 'REPLICATION_PASS=replicatorpass' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
# Enable Unaccent (Search plain text with accent)
|
||||
@@ -200,7 +204,7 @@ By default unaccent is configure to `false`
|
||||
```bash
|
||||
docker run --name postgresql -d \
|
||||
-e 'DB_UNACCENT=true' \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
# Host UID / GID Mapping
|
||||
@@ -212,7 +216,7 @@ Also the container processes seem to be executed as the host's user/group `[what
|
||||
```bash
|
||||
docker run --name=postgresql -it --rm [options] \
|
||||
--env="USERMAP_UID=$(id -u postgres)" --env="USERMAP_GID=$(id -g postgres)" \
|
||||
sameersbn/postgresql:9.4-4
|
||||
sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
|
||||
@@ -229,13 +233,13 @@ docker stop postgresql
|
||||
- **Step 2**: Update the docker image.
|
||||
|
||||
```bash
|
||||
docker pull sameersbn/postgresql:9.4-4
|
||||
docker pull sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
- **Step 3**: Start the image
|
||||
|
||||
```bash
|
||||
docker run --name postgresql -d [OPTIONS] sameersbn/postgresql:9.4-4
|
||||
docker run --name postgresql -d [OPTIONS] sameersbn/postgresql:9.4-8
|
||||
```
|
||||
|
||||
# Shell Access
|
||||
|
||||
+83
-80
@@ -9,6 +9,7 @@ PSQL_TRUST_LOCALNET=${PSQL_TRUST_LOCALNET:-false}
|
||||
DB_NAME=${DB_NAME:-}
|
||||
DB_USER=${DB_USER:-}
|
||||
DB_PASS=${DB_PASS:-}
|
||||
DB_LOCALE=${DB_LOCALE:-C}
|
||||
DB_UNACCENT=${DB_UNACCENT:false}
|
||||
|
||||
# by default postgresql will start up as a standalone instance.
|
||||
@@ -60,8 +61,72 @@ create_data_dir
|
||||
create_log_dir
|
||||
create_run_dir
|
||||
|
||||
# fix ownership of ${PG_CONFDIR} (may be necessary if USERMAP_* was set)
|
||||
chown -R ${PG_USER}:${PG_USER} ${PG_CONFDIR}
|
||||
cd ${PG_HOME}
|
||||
|
||||
# initialize PostgreSQL data directory
|
||||
if [[ ! -d ${PG_DATADIR} ]]; then
|
||||
if [[ ${PSQL_MODE} == slave || ${PSQL_MODE} == snapshot ]]; then
|
||||
echo "Replicating database..."
|
||||
if [[ ${PSQL_MODE} == snapshot ]]; then
|
||||
sudo -Hu ${PG_USER} \
|
||||
PGPASSWORD=$REPLICATION_PASS ${PG_BINDIR}/pg_basebackup -D ${PG_DATADIR} \
|
||||
-h ${REPLICATION_HOST} -p ${REPLICATION_PORT} -U ${REPLICATION_USER} -w -x -v -P
|
||||
elif [[ ${PSQL_MODE} == slave ]]; then
|
||||
# Setup streaming replication.
|
||||
sudo -Hu ${PG_USER} \
|
||||
PGPASSWORD=$REPLICATION_PASS ${PG_BINDIR}/pg_basebackup -D ${PG_DATADIR} \
|
||||
-h ${REPLICATION_HOST} -p ${REPLICATION_PORT} -U ${REPLICATION_USER} -X stream -w -v -P
|
||||
echo "Setting up hot standby configuration..."
|
||||
cat >> ${PG_CONFDIR}/postgresql.conf <<EOF
|
||||
hot_standby = on
|
||||
EOF
|
||||
sudo -Hu ${PG_USER} touch ${PG_DATADIR}/recovery.conf
|
||||
cat >> ${PG_DATADIR}/recovery.conf <<EOF
|
||||
standby_mode = 'on'
|
||||
primary_conninfo = 'host=${REPLICATION_HOST} port=${REPLICATION_PORT} user=${REPLICATION_USER} password=${REPLICATION_PASS} sslmode=${PSQL_SSLMODE}'
|
||||
trigger_file = '/tmp/postgresql.trigger'
|
||||
EOF
|
||||
fi
|
||||
|
||||
else
|
||||
# check if we need to perform data migration
|
||||
PG_OLD_VERSION=$(find ${PG_HOME}/[0-9].[0-9]/main -maxdepth 1 -name PG_VERSION 2>/dev/null | sort -r | head -n1 | cut -d'/' -f5)
|
||||
|
||||
if [[ $DB_LOCALE != C ]]; then
|
||||
echo "Generating required locale \"${DB_LOCALE}\"..."
|
||||
locale-gen ${DB_LOCALE} >/dev/null
|
||||
fi
|
||||
|
||||
echo "Initializing database..."
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/initdb --pgdata=${PG_DATADIR} \
|
||||
--username=${PG_USER} --encoding=unicode --locale=${DB_LOCALE} --auth=trust >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n ${PG_OLD_VERSION} ]]; then
|
||||
echo "Migrating postgresql ${PG_OLD_VERSION} data..."
|
||||
PG_OLD_CONFDIR="${PG_HOME}/${PG_OLD_VERSION}/main"
|
||||
PG_OLD_BINDIR="/usr/lib/postgresql/${PG_OLD_VERSION}/bin"
|
||||
PG_OLD_DATADIR="${PG_HOME}/${PG_OLD_VERSION}/main"
|
||||
|
||||
# backup ${PG_OLD_DATADIR} to avoid data loss
|
||||
PG_BKP_SUFFIX=$(date +%Y%m%d%H%M%S)
|
||||
echo "Backing up ${PG_OLD_DATADIR} to ${PG_OLD_DATADIR}.${PG_BKP_SUFFIX}..."
|
||||
cp -a ${PG_OLD_DATADIR} ${PG_OLD_DATADIR}.${PG_BKP_SUFFIX}
|
||||
|
||||
echo "Installing postgresql-${PG_OLD_VERSION}..."
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install postgresql-${PG_OLD_VERSION} postgresql-client-${PG_OLD_VERSION}
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# migrate ${PG_OLD_VERSION} data
|
||||
echo "Migration in progress. This could take a while, please be patient..."
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/pg_upgrade \
|
||||
-b ${PG_OLD_BINDIR} -B ${PG_BINDIR} \
|
||||
-d ${PG_OLD_DATADIR} -D ${PG_DATADIR} \
|
||||
-o "-c config_file=${PG_OLD_CONFDIR}/postgresql.conf --hba_file=${PG_OLD_CONFDIR}/pg_hba.conf --ident_file=${PG_OLD_CONFDIR}/pg_ident.conf" \
|
||||
-O "-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf" >/dev/null
|
||||
fi
|
||||
|
||||
if [[ ${PSQL_SSLMODE} == disable ]]; then
|
||||
sed 's/ssl = true/#ssl = true/' -i ${PG_CONFDIR}/postgresql.conf
|
||||
@@ -115,68 +180,6 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ${PG_HOME}
|
||||
|
||||
# initialize PostgreSQL data directory
|
||||
if [[ ! -d ${PG_DATADIR} ]]; then
|
||||
if [[ ${PSQL_MODE} == slave || ${PSQL_MODE} == snapshot ]]; then
|
||||
echo "Replicating database..."
|
||||
if [[ ${PSQL_MODE} == snapshot ]]; then
|
||||
sudo -Hu ${PG_USER} \
|
||||
PGPASSWORD=$REPLICATION_PASS ${PG_BINDIR}/pg_basebackup -D ${PG_DATADIR} \
|
||||
-h ${REPLICATION_HOST} -p ${REPLICATION_PORT} -U ${REPLICATION_USER} -w -x -v -P
|
||||
elif [[ ${PSQL_MODE} == slave ]]; then
|
||||
# Setup streaming replication.
|
||||
sudo -Hu ${PG_USER} \
|
||||
PGPASSWORD=$REPLICATION_PASS ${PG_BINDIR}/pg_basebackup -D ${PG_DATADIR} \
|
||||
-h ${REPLICATION_HOST} -p ${REPLICATION_PORT} -U ${REPLICATION_USER} -w -v -P
|
||||
echo "Setting up hot standby configuration..."
|
||||
cat >> ${PG_CONFDIR}/postgresql.conf <<EOF
|
||||
hot_standby = on
|
||||
EOF
|
||||
sudo -Hu ${PG_USER} touch ${PG_DATADIR}/recovery.conf
|
||||
cat >> ${PG_DATADIR}/recovery.conf <<EOF
|
||||
standby_mode = 'on'
|
||||
primary_conninfo = 'host=${REPLICATION_HOST} port=${REPLICATION_PORT} user=${REPLICATION_USER} password=${REPLICATION_PASS} sslmode=${PSQL_SSLMODE}'
|
||||
trigger_file = '/tmp/postgresql.trigger'
|
||||
EOF
|
||||
fi
|
||||
|
||||
else
|
||||
# check if we need to perform data migration
|
||||
PG_OLD_VERSION=$(find ${PG_HOME}/[0-9].[0-9]/main -maxdepth 1 -name PG_VERSION 2>/dev/null | sort -r | head -n1 | cut -d'/' -f5)
|
||||
|
||||
echo "Initializing database..."
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/initdb --pgdata=${PG_DATADIR} \
|
||||
--username=${PG_USER} --encoding=unicode --auth=trust >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n ${PG_OLD_VERSION} ]]; then
|
||||
echo "Migrating postgresql ${PG_OLD_VERSION} data..."
|
||||
PG_OLD_CONFDIR="/etc/postgresql/${PG_OLD_VERSION}/main"
|
||||
PG_OLD_BINDIR="/usr/lib/postgresql/${PG_OLD_VERSION}/bin"
|
||||
PG_OLD_DATADIR="${PG_HOME}/${PG_OLD_VERSION}/main"
|
||||
|
||||
# backup ${PG_OLD_DATADIR} to avoid data loss
|
||||
PG_BKP_SUFFIX=$(date +%Y%m%d%H%M%S)
|
||||
echo "Backing up ${PG_OLD_DATADIR} to ${PG_OLD_DATADIR}.${PG_BKP_SUFFIX}..."
|
||||
cp -a ${PG_OLD_DATADIR} ${PG_OLD_DATADIR}.${PG_BKP_SUFFIX}
|
||||
|
||||
echo "Installing postgresql-${PG_OLD_VERSION}..."
|
||||
apt-get update
|
||||
apt-get install postgresql-${PG_OLD_VERSION} postgresql-client-${PG_OLD_VERSION}
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# migrate ${PG_OLD_VERSION} data
|
||||
echo "Migration in progress. This could take a while, please be patient..."
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/pg_upgrade \
|
||||
-b ${PG_OLD_BINDIR} -B ${PG_BINDIR} \
|
||||
-d ${PG_OLD_DATADIR} -D ${PG_DATADIR} \
|
||||
-o "-c config_file=${PG_OLD_CONFDIR}/postgresql.conf" \
|
||||
-O "-c config_file=${PG_CONFDIR}/postgresql.conf" >/dev/null
|
||||
fi
|
||||
|
||||
# Hot standby (slave and snapshot) servers can ignore the following code.
|
||||
if [[ ${PSQL_MODE} == standalone || ${PSQL_MODE} == master ]]; then
|
||||
if [[ -n ${REPLICATION_USER} ]]; then
|
||||
@@ -188,9 +191,9 @@ if [[ ${PSQL_MODE} == standalone || ${PSQL_MODE} == master ]]; then
|
||||
DB_USER=
|
||||
else
|
||||
echo "Creating user \"${REPLICATION_USER}\"..."
|
||||
echo "CREATE ROLE ${REPLICATION_USER} WITH REPLICATION LOGIN ENCRYPTED PASSWORD '${REPLICATION_PASS}';" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf >/dev/null
|
||||
echo "CREATE ROLE \"${REPLICATION_USER}\" WITH REPLICATION LOGIN ENCRYPTED PASSWORD '${REPLICATION_PASS}';" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -203,36 +206,36 @@ if [[ ${PSQL_MODE} == standalone || ${PSQL_MODE} == master ]]; then
|
||||
DB_USER=
|
||||
else
|
||||
echo "Creating user \"${DB_USER}\"..."
|
||||
echo "CREATE ROLE ${DB_USER} with LOGIN CREATEDB PASSWORD '${DB_PASS}';" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf >/dev/null
|
||||
echo "CREATE ROLE \"${DB_USER}\" with LOGIN CREATEDB PASSWORD '${DB_PASS}';" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n ${DB_NAME} ]]; then
|
||||
for db in $(awk -F',' '{for (i = 1 ; i <= NF ; i++) print $i}' <<< "${DB_NAME}"); do
|
||||
echo "Creating database \"${db}\"..."
|
||||
echo "CREATE DATABASE ${db};" | \
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf >/dev/null
|
||||
echo "CREATE DATABASE \"${db}\";" | \
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf >/dev/null
|
||||
|
||||
if [[ ${DB_UNACCENT} == true ]]; then
|
||||
echo "Installing unaccent extension..."
|
||||
echo "CREATE EXTENSION IF NOT EXISTS unaccent;" | \
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single ${db} \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf >/dev/null
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single ${db} -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf >/dev/null
|
||||
fi
|
||||
|
||||
if [[ -n ${DB_USER} ]]; then
|
||||
echo "Granting access to database \"${db}\" for user \"${DB_USER}\"..."
|
||||
echo "GRANT ALL PRIVILEGES ON DATABASE ${db} to ${DB_USER};" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf >/dev/null
|
||||
echo "GRANT ALL PRIVILEGES ON DATABASE \"${db}\" to \"${DB_USER}\";" |
|
||||
sudo -Hu ${PG_USER} ${PG_BINDIR}/postgres --single -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf >/dev/null
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Starting PostgreSQL server..."
|
||||
exec start-stop-daemon --start --chuid ${PG_USER}:${PG_USER} --exec ${PG_BINDIR}/postgres -- \
|
||||
-D ${PG_DATADIR} -c config_file=${PG_CONFDIR}/postgresql.conf
|
||||
exec start-stop-daemon --start --chuid ${PG_USER}:${PG_USER} --exec ${PG_BINDIR}/postgres -- -D ${PG_DATADIR} \
|
||||
-c config_file=${PG_CONFDIR}/postgresql.conf --hba_file=${PG_CONFDIR}/pg_hba.conf --ident_file=${PG_CONFDIR}/pg_ident.conf
|
||||
|
||||
Reference in New Issue
Block a user