Dockerfile 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # VERSION: 0.2
  2. # DESCRIPTION: Create the PostgreSQL 9.4 Databasee in a container
  3. # AUTHOR: Dennis Mojado (denmojo@gmail.com)
  4. # COMMENTS:
  5. # This file describe how to install PostgreSQL with main
  6. # dependencies installed.
  7. # USAGE:
  8. # # Download this Dockerfile
  9. #
  10. # # Build PostgreSQL image
  11. # docker build -t postgresql-9.4
  12. #
  13. # docker run -v /var/lib/postgresql/9.4:/var/lib/postgresql/9.4 \
  14. # postgresql-9.4
  15. #
  16. #
  17. FROM debian:stretch
  18. MAINTAINER Mario Incandenza <mario.incandenza@autistici.org>
  19. ENV DEBIAN_FRONTEND noninteractive
  20. ADD ./accountsdb.xml /tmp
  21. ADD ./messagedb.xml /tmp
  22. RUN apt-get update -qq && apt-get upgrade -y
  23. RUN apt-get install redis-server wget openjdk-8-jre-headless -y
  24. RUN apt-get install postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6 libpostgresql-jdbc-java -y
  25. RUN wget https://github.com/liquibase/liquibase/releases/download/liquibase-parent-3.5.3/liquibase-debian_3.5.3_all.deb
  26. RUN dpkg -i liquibase-debian_3.5.3_all.deb
  27. RUN apt-get clean
  28. RUN sed 's/^bind\s\+127\.0\.0\.1/bind 0\.0\.0\.0/g' < /etc/redis/redis.conf > /tmp/redis.conf
  29. RUN cat /tmp/redis.conf > /etc/redis/redis.conf && rm /tmp/redis.conf
  30. RUN echo "/etc/init.d/postgresql start && exit 0" > /etc/rc.local
  31. RUN /etc/init.d/postgresql start &&\
  32. su postgres -c "psql --command \"CREATE USER signal with encrypted password 's1gn4l';\" " &&\
  33. su postgres -c "psql --command \"CREATE DATABASE signaldb WITH OWNER signal;\" " &&\
  34. su postgres -c "liquibase --driver=org.postgresql.Driver --classpath=/usr/share/java/postgresql-jdbc4.jar --url=jdbc:postgresql://localhost:5432/signaldb --username=signal --password=s1gn4l --changeLogFile=/tmp/accountsdb.xml update" &&\
  35. su postgres -c "liquibase --driver=org.postgresql.Driver --classpath=/usr/share/java/postgresql-jdbc4.jar --url=jdbc:postgresql://localhost:5432/signaldb --username=signal --password=s1gn4l --changeLogFile=/tmp/messagedb.xml update"
  36. RUN dpkg -P liquibase
  37. RUN rm liquibase-debian_3.5.3_all.deb
  38. USER postgres
  39. RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.6/main/pg_hba.conf
  40. RUN echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf
  41. EXPOSE 5432 6379
  42. USER root
  43. # VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] /usr/share/java/postgresql-jdbc4.jar
  44. CMD service redis-server start && su postgres -c "/usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf"