Created
August 20, 2019 13:33
-
-
Save MarekVigas/9e1d73392825303319267f4965dd8d29 to your computer and use it in GitHub Desktop.
PostgreSql 11 Dockerfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# example Dockerfile for https://docs.docker.com/engine/examples/postgresql_service/ | |
# | |
FROM ubuntu:18.04 | |
# Install curl | |
RUN apt-get update && apt-get install -y wget gnupg2 | |
# Add the PostgreSQL PGP key to verify their Debian packages. | |
RUN wget https://www.postgresql.org/media/keys/ACCC4CF8.asc && apt-key add ACCC4CF8.asc && rm ACCC4CF8.asc | |
# Add PostgreSQL's repository. It contains the most recent stable release | |
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" > /etc/apt/sources.list.d/pgdg.list | |
# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL | |
# There are some warnings (in red) that show up during the build. You can hide | |
# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive | |
RUN apt-get update && apt-get install -y postgresql-11 postgresql-contrib-11 | |
# Note: The official Debian and Ubuntu images automatically ``apt-get clean`` | |
# after each ``apt-get`` | |
# Run the rest of the commands as the ``postgres`` user created by the ``postgres`` package when it was ``apt-get installed`` | |
USER postgres | |
# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and | |
# then create a database `docker` owned by the ``docker`` role. | |
# Note: here we use ``&&\`` to run commands one after the other - the ``\`` | |
# allows the RUN command to span multiple lines. | |
RUN /etc/init.d/postgresql start &&\ | |
psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\ | |
createdb -O docker docker | |
# Adjust PostgreSQL configuration so that remote connections to the | |
# database are possible. | |
RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/11/main/pg_hba.conf | |
# And add ``listen_addresses`` to ``/etc/postgresql/11/main/postgresql.conf`` | |
RUN echo "listen_addresses='*'" >> /etc/postgresql/11/main/postgresql.conf | |
# Expose the PostgreSQL port | |
EXPOSE 5432 | |
# Add VOLUMEs to allow backup of config, logs and databases | |
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] | |
# Set the default command to run when starting the container | |
CMD ["/usr/lib/postgresql/11/bin/postgres", "-D", "/var/lib/postgresql/11/main", "-c", "config_file=/etc/postgresql/11/main/postgresql.conf"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Build image
docker build -t eg_postgresql .
Start container
docker run --rm -p 5432:5432 --name pg_test eg_postgresql