aptible/postgresql

By aptible

Updated 2 months ago

Image
0

100K+

aptible/postgresql

Docker Repository on Quay.io

PostgreSQL, on top of Debian Wheezy.

Installation and Usage

docker pull quay.io/aptible/postgresql:${VERSION:-latest}

This is an image conforming to the Aptible database specification. To run a server for development purposes, execute

docker create --name data quay.io/aptible/postgresql
docker run --volumes-from data -e USERNAME=aptible -e PASSPHRASE=pass -e DB=db quay.io/aptible/postgresql --initialize
docker run --volumes-from data -P quay.io/aptible/postgresql

The first command sets up a data container named data which will hold the configuration and data for the database. The second command creates a PostgreSQL instance with a username, passphrase and database name of your choice. The third command starts the database server.

SSL

The PostgreSQL server is configured to enforce SSL for any TCP connection. Important note: Because the key and certificate used for SSL negotiation are included in the Docker image, and shared by all Docker clients running the same version of the image, a PostgreSQL server launched with just docker run is NOT suitable for production.

To generate a unique key/certificate pair, you have two options:

  1. Build directly from the Dockerfile, disabling caching:

     docker build --no-cache .
    
  2. Initialize a new key and certificate in the host volume and mount that directory into the Docker container, as follows:

     cd <host-mountpoint>/ssl
     openssl req -new -newkey rsa:1024 -days 365000 -nodes -x509 \
       -keyout server.key -subj "/CN=PostgreSQL" -out server.crt
     chmod og-rwx server.key
     docker run -v <host-mountpoint>/ssl:/etc/postgresql/9.4/ssl -u root \
       quay.io/aptible/postgresql chown -R postgres:postgres /etc/postgresql/9.4
     docker run -v <host-mountpoint>/ssl:/etc/postgresql/9.4/ssl \
       quay.io/aptible/postgresql
    

Available Versions (Tags)

  • latest: Currently PostgreSQL 9.4.5
  • 9.4: PostgreSQL 9.4.5
  • 9.3: PostgreSQL 9.3.8

Tests

Tests are run as part of the Dockerfile build. To execute them separately within a container, run:

bats test

Deployment

To push the Docker image to Quay, run the following command:

make release

Continuous Integration

Images are built and pushed to Docker Hub on every deploy. Because Quay currently only supports build triggers where the Docker tag name exactly matches a GitHub branch/tag name, we must run the following script to synchronize all our remote branches after a merge to master:

make sync-branches

Copyright and License

MIT License, see LICENSE for details.

Copyright (c) 2015 Aptible and contributors.

@fancyremarker

Docker Pull Command

docker pull aptible/postgresql