2 Commits

Author SHA1 Message Date
Sameer Naik 116b158c1a release 9.4-10 2015-12-09 22:34:11 +05:30
Sameer Naik 60a249dd7d ensure required defaults are set at every start 2015-12-09 22:33:39 +05:30
4 changed files with 34 additions and 34 deletions
+19 -19
View File
@@ -1,6 +1,6 @@
[![Circle CI](https://circleci.com/gh/sameersbn/docker-postgresql.svg?style=shield)](https://circleci.com/gh/sameersbn/docker-postgresql) [![Docker Repository on Quay.io](https://quay.io/repository/sameersbn/postgresql/status "Docker Repository on Quay.io")](https://quay.io/repository/sameersbn/postgresql) [![](https://badge.imagelayers.io/sameersbn/postgresql.svg)](https://imagelayers.io/?images=sameersbn/postgresql:latest 'Get your own badge on imagelayers.io') [![Circle CI](https://circleci.com/gh/sameersbn/docker-postgresql.svg?style=shield)](https://circleci.com/gh/sameersbn/docker-postgresql) [![Docker Repository on Quay.io](https://quay.io/repository/sameersbn/postgresql/status "Docker Repository on Quay.io")](https://quay.io/repository/sameersbn/postgresql) [![](https://badge.imagelayers.io/sameersbn/postgresql.svg)](https://imagelayers.io/?images=sameersbn/postgresql:latest 'Get your own badge on imagelayers.io')
# sameersbn/postgresql:9.4-9 # sameersbn/postgresql:9.4-10
- [Introduction](#introduction) - [Introduction](#introduction)
- [Contributing](#contributing) - [Contributing](#contributing)
@@ -60,7 +60,7 @@ Automated builds of the image are available on [Dockerhub](https://hub.docker.co
> **Note**: Builds are also available on [Quay.io](https://quay.io/repository/sameersbn/postgresql) > **Note**: Builds are also available on [Quay.io](https://quay.io/repository/sameersbn/postgresql)
```bash ```bash
docker pull sameersbn/postgresql:9.4-9 docker pull sameersbn/postgresql:9.4-10
``` ```
Alternatively you can build the image yourself. Alternatively you can build the image yourself.
@@ -77,7 +77,7 @@ Start PostgreSQL using:
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--publish 5432:5432 \ --publish 5432:5432 \
--volume /srv/docker/postgresql:/var/lib/postgresql \ --volume /srv/docker/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
Login to the PostgreSQL server using: Login to the PostgreSQL server using:
@@ -108,7 +108,7 @@ By default connections to the PostgreSQL server need to authenticated using a pa
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'PG_TRUST_LOCALNET=true' \ --env 'PG_TRUST_LOCALNET=true' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
> **Note** > **Note**
@@ -122,7 +122,7 @@ A new PostgreSQL database user can be created by specifying the `DB_USER` and `D
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' \ --env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
> **Notes** > **Notes**
@@ -139,7 +139,7 @@ A new PostgreSQL database can be created by specifying the `DB_NAME` variable wh
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'DB_NAME=dbname' \ --env 'DB_NAME=dbname' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
Additionally, more than one database can be created by specifying a comma separated list of database names in `DB_NAME`. For example, the following command creates two new databases named `dbname1` and `dbname2`. Additionally, more than one database can be created by specifying a comma separated list of database names in `DB_NAME`. For example, the following command creates two new databases named `dbname1` and `dbname2`.
@@ -149,7 +149,7 @@ Additionally, more than one database can be created by specifying a comma separa
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'DB_NAME=dbname1,dbname2' \ --env 'DB_NAME=dbname1,dbname2' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
# Enabling unaccent extension # Enabling unaccent extension
@@ -161,7 +161,7 @@ You can enable the unaccent extension on database(s) by specifying `DB_UNACCENT=
```bash ```bash
docker run --name postgresql -itd \ docker run --name postgresql -itd \
--env 'DB_NAME=dbname' --env 'DB_UNACCENT=true' \ --env 'DB_NAME=dbname' --env 'DB_UNACCENT=true' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
*By default the unaccent extension is disabled* *By default the unaccent extension is disabled*
@@ -174,7 +174,7 @@ If the `DB_USER` and `DB_PASS` variables are specified along with the `DB_NAME`
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' \ --env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' \
--env 'DB_NAME=dbname1,dbname2' \ --env 'DB_NAME=dbname1,dbname2' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
In the above example `dbuser` with be granted access to both the `dbname1` and `dbname2` databases. In the above example `dbuser` with be granted access to both the `dbname1` and `dbname2` databases.
@@ -186,7 +186,7 @@ Similar to the creation of a database user, a new PostgreSQL replication user ca
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \ --env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
> **Notes** > **Notes**
@@ -208,7 +208,7 @@ Begin by creating the master node of our cluster:
docker run --name postgresql-master -itd --restart always \ docker run --name postgresql-master -itd --restart always \
--env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' --env 'DB_NAME=dbname' \ --env 'DB_USER=dbuser' --env 'DB_PASS=dbuserpass' --env 'DB_NAME=dbname' \
--env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \ --env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
Notice that no additional arguments are specified while starting the master node of the cluster. Notice that no additional arguments are specified while starting the master node of the cluster.
@@ -223,7 +223,7 @@ docker run --name postgresql-slave01 -itd --restart always \
--env 'REPLICATION_MODE=slave' --env 'REPLICATION_SSLMODE=prefer' \ --env 'REPLICATION_MODE=slave' --env 'REPLICATION_SSLMODE=prefer' \
--env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \ --env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \
--env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \ --env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
*In the above command, we used docker links so that we can address the master node using the `master` alias in `REPLICATION_HOST`.* *In the above command, we used docker links so that we can address the master node using the `master` alias in `REPLICATION_HOST`.*
@@ -255,7 +255,7 @@ docker run --name postgresql-snapshot -itd --restart always \
--env 'REPLICATION_MODE=snapshot' --env 'REPLICATION_SSLMODE=prefer' \ --env 'REPLICATION_MODE=snapshot' --env 'REPLICATION_SSLMODE=prefer' \
--env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \ --env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \
--env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \ --env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
The difference between a slave and a snapshot is that a slave is read-only and updated whenever the master data is updated (streaming replication), while a snapshot is read-write and is not updated after the initial snapshot of the data from the master. The difference between a slave and a snapshot is that a slave is read-only and updated whenever the master data is updated (streaming replication), while a snapshot is read-write and is not updated after the initial snapshot of the data from the master.
@@ -277,7 +277,7 @@ docker run --name postgresql-backup -it --rm \
--env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \ --env 'REPLICATION_HOST=master' --env 'REPLICATION_PORT=5432' \
--env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \ --env 'REPLICATION_USER=repluser' --env 'REPLICATION_PASS=repluserpass' \
--volume /srv/docker/backups/postgresql.$(date +%Y%m%d%H$M%S):/var/lib/postgresql \ --volume /srv/docker/backups/postgresql.$(date +%Y%m%d%H$M%S):/var/lib/postgresql \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
Once the backup is generated, the container will exit and the backup of the master data will be available at `/srv/docker/backups/postgresql.XXXXXXXXXXXX/`. Restoring the backup involves starting a container with the data in `/srv/docker/backups/postgresql.XXXXXXXXXXXX`. Once the backup is generated, the container will exit and the backup of the master data will be available at `/srv/docker/backups/postgresql.XXXXXXXXXXXX/`. Restoring the backup involves starting a container with the data in `/srv/docker/backups/postgresql.XXXXXXXXXXXX`.
@@ -288,7 +288,7 @@ You can customize the launch command of PostgreSQL server by specifying argument
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
sameersbn/postgresql:9.4-9 -c log_connections=on sameersbn/postgresql:9.4-10 -c log_connections=on
``` ```
Please refer to the documentation of [postgres](http://www.postgresql.org/docs/9.4/static/app-postgres.html) for the complete list of available options. Please refer to the documentation of [postgres](http://www.postgresql.org/docs/9.4/static/app-postgres.html) for the complete list of available options.
@@ -299,7 +299,7 @@ By default the PostgreSQL server logs are sent to the standard output. Using the
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
sameersbn/postgresql:9.4-9 -c logging_collector=on sameersbn/postgresql:9.4-10 -c logging_collector=on
``` ```
To access the PostgreSQL logs you can use `docker exec`. For example: To access the PostgreSQL logs you can use `docker exec`. For example:
@@ -321,7 +321,7 @@ For example, if you want to assign the `postgres` user of the container the UID
```bash ```bash
docker run --name postgresql -itd --restart always \ docker run --name postgresql -itd --restart always \
--env 'USERMAP_UID=999' --env 'USERMAP_GID=999' \ --env 'USERMAP_UID=999' --env 'USERMAP_GID=999' \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
# Maintenance # Maintenance
@@ -333,7 +333,7 @@ To upgrade to newer releases:
1. Download the updated Docker image: 1. Download the updated Docker image:
```bash ```bash
docker pull sameersbn/postgresql:9.4-9 docker pull sameersbn/postgresql:9.4-10
``` ```
2. Stop the currently running image: 2. Stop the currently running image:
@@ -353,7 +353,7 @@ To upgrade to newer releases:
```bash ```bash
docker run --name postgresql -itd \ docker run --name postgresql -itd \
[OPTIONS] \ [OPTIONS] \
sameersbn/postgresql:9.4-9 sameersbn/postgresql:9.4-10
``` ```
## Shell Access ## Shell Access
+1 -1
View File
@@ -1 +1 @@
9.4-9 9.4-10
+1 -1
View File
@@ -1,6 +1,6 @@
PostgreSQL: PostgreSQL:
restart: always restart: always
image: sameersbn/postgresql:9.4-9 image: sameersbn/postgresql:9.4-10
ports: ports:
- "5432:5432" - "5432:5432"
environment: environment:
+13 -13
View File
@@ -224,19 +224,6 @@ initialize_database() {
;; ;;
esac esac
# configure path to data_directory
set_postgresql_param "data_directory" "${PG_DATADIR}"
# configure logging
set_postgresql_param "log_directory" "${PG_LOGDIR}"
set_postgresql_param "log_filename" "postgresql-${PG_VERSION}-main.log"
# listen on all interfaces
set_postgresql_param "listen_addresses" "*"
# allow remote connections to postgresql database
set_hba_param "host all all 0.0.0.0/0 md5"
configure_hot_standby configure_hot_standby
# Change DSM from `posix' to `sysv' if we are inside an lx-brand container # Change DSM from `posix' to `sysv' if we are inside an lx-brand container
@@ -244,6 +231,19 @@ initialize_database() {
set_postgresql_param "dynamic_shared_memory_type" "sysv" set_postgresql_param "dynamic_shared_memory_type" "sysv"
fi fi
fi fi
# configure path to data_directory
set_postgresql_param "data_directory" "${PG_DATADIR}"
# configure logging
set_postgresql_param "log_directory" "${PG_LOGDIR}"
set_postgresql_param "log_filename" "postgresql-${PG_VERSION}-main.log"
# listen on all interfaces
set_postgresql_param "listen_addresses" "*"
# allow remote connections to postgresql database
set_hba_param "host all all 0.0.0.0/0 md5"
} }
trust_localnet() { trust_localnet() {