Skip to content

madharjan/docker-postgresql

Repository files navigation

docker-postgresql

Docker container for PostgreSQL Server based on madharjan/docker-base

  • PostgreSQL Server 9.3 (docker-postgresql)

Environment

Variable Default Example
DISABLE_POSTGRESQL 0 1 (to disable)
POSTGRESQL_DATABASE postgres mydb
POSTGRESQL_USERNAME postgres myuser
POSTGRESQL_PASSWORD mypass

Build

Clone this project

git clone https://github.com/madharjan/docker-postgresql
cd docker-postgresql

Build Containers

# login to DockerHub
docker login

# build
make

# test
make run
make tests
make clean

# tag
make tag_latest

# update Changelog.md
# release
make release

Tag and Commit to Git

git tag 9.3
git push origin 9.3

Run Container

PostgreSQL

Prepare folder on host for container volumes

sudo mkdir -p /opt/docker/postgresql/etc/
sudo mkdir -p /opt/docker/postgresql/lib/
sudo mkdir -p /opt/docker/postgresql/log/

Run docker-postgresql

docker stop postgresql
docker rm postgresql

docker run -d \
  -e POSTGRESQL_DATABASE=mydb \
  -e POSTGRESQL_USERNAME=myuser \
  -e POSTGRESQL_PASSWORD=mypass \
  -p 5432:5432 \
  -v /opt/docker/postgresql/etc:/etc/postgresql/9.3/main \
  -v /opt/docker/postgresql/lib:/var/lib/postgresql/9.3/main \
  -v /opt/docker/postgresql/log:/var/log/postgresql \
  --name postgresql \
  madharjan/docker-postgresql:9.3

Systemd Unit File

[Unit]
Description=PostgreSQL Server

After=docker.service

[Service]
TimeoutStartSec=0

ExecStartPre=-/bin/mkdir -p /opt/docker/postgresql/etc
ExecStartPre=-/bin/mkdir -p /opt/docker/postgresql/lib
ExecStartPre=-/bin/mkdir -p /opt/docker/postgresql/log
ExecStartPre=-/usr/bin/docker stop postgresql
ExecStartPre=-/usr/bin/docker rm postgresql
ExecStartPre=-/usr/bin/docker pull madharjan/docker-postgresql:9.3

ExecStart=/usr/bin/docker run \
  -e POSTGRESQL_DATABASE=mydb \
  -e POSTGRESQL_USERNAME=myuser \
  -e POSTGRESQL_PASSWORD=mypass \
  -p 172.17.0.1:5432:5432 \
  -v /opt/docker/postgresql/etc/:/etc/postgresql/etc/9.3/main \
  -v /opt/docker/postgresql/lib/:/var/lib/postgresql/9.3/main \
  -v /opt/docker/postgresql/log:/var/log/postgresql \
  --name postgresql \
  madharjan/docker-postgresql:9.3

ExecStop=/usr/bin/docker stop -t 2 postgresql

[Install]
WantedBy=multi-user.target