annotate db_schema/Dockerfile @ 1249:f094aca05cf2

Avoid having to handle missing shapes.
author Tom Gottfried <tom@intevation.de>
date Fri, 16 Dec 2016 16:18:37 +0100
parents 259a6b638968
children ea6b062e5305 902bc2190fec
rev   line source
743
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1 # Docker file for postgresql 9.4 on debain
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
2 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
3 # build with e.g. `docker build --force-rm=true -t koala/lada_db .',
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
4 # then run with e.g.
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
5 # `docker run --name lada_db -dp 2345:5432 koala/lada_db:latest'
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
6 #
1086
259a6b638968 Prepare for easier schema update testing.
Tom Gottfried <tom@intevation.de>
parents: 1056
diff changeset
7 # For easier testing of schema or example data changes, it can be useful to add
259a6b638968 Prepare for easier schema update testing.
Tom Gottfried <tom@intevation.de>
parents: 1056
diff changeset
8 # `-v $PWD:/opt/lada_sql/' and run setup-db.sh within the container.
259a6b638968 Prepare for easier schema update testing.
Tom Gottfried <tom@intevation.de>
parents: 1056
diff changeset
9 #
743
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
10
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
11 FROM debian:jessie
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
12 MAINTAINER tom.gottfried@intevation.de
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
13
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
14 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
15 # Use utf-8
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
16 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
17 RUN echo \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
18 "locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8" | \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
19 debconf-set-selections && \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
20 echo "locales locales/default_environment_locale select en_US.UTF-8" | \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
21 debconf-set-selections
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
22
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
23 RUN apt-get update -y && apt-get install -y locales
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
24
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
25 ENV LC_ALL en_US.UTF-8
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
26
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
27 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
28 # Install packages
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
29 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
30 RUN apt-get update && \
1056
299f4ba86090 extend docker envireoment to load geographical data of german comunities
Michael Stanko <mstanko@bfs.de>
parents: 743
diff changeset
31 apt-get install -y postgresql-9.4-postgis-2.1 postgis curl unzip
743
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
32
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
33 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
34 # Use user postgres to run the next commands
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
35 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
36 USER postgres
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
37
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
38 RUN /etc/init.d/postgresql start && \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
39 psql --command "CREATE USER admin WITH SUPERUSER PASSWORD 'secret';"
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
40
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
41 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
42 # Adjust PostgreSQL configuration so that remote connections to the
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
43 # database are possible.
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
44 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
45 RUN echo "host all all 0.0.0.0/0 md5" >> \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
46 /etc/postgresql/9.4/main/pg_hba.conf
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
47
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
48 RUN echo "listen_addresses='*'" >> /etc/postgresql/9.4/main/postgresql.conf
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
49
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
50 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
51 # Expose the PostgreSQL port
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
52 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
53 EXPOSE 5432
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
54
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
55 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
56 # Create database
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
57 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
58 # Don't mind scary messages like
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
59 # 'FATAL: the database system is starting up'.
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
60 # It's because of the -w
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
61 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
62 ADD . /opt/lada_sql/
1086
259a6b638968 Prepare for easier schema update testing.
Tom Gottfried <tom@intevation.de>
parents: 1056
diff changeset
63 WORKDIR /opt/lada_sql/
743
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
64
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
65 RUN /usr/lib/postgresql/9.4/bin/pg_ctl start -wD /etc/postgresql/9.4/main/ && \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
66 /opt/lada_sql/setup-db.sh
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
67
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
68 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
69 # Set the default command to run when starting the container
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
70 #
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
71 CMD ["/usr/lib/postgresql/9.4/bin/postgres", "-D", \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
72 "/var/lib/postgresql/9.4/main", "-c", \
c7fcc46c6a57 Add Dockerfile for dockerised DB-server.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
73 "config_file=/etc/postgresql/9.4/main/postgresql.conf"]
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)