Mercurial > dive4elements > river
annotate docker/Dockerfile.mapserv @ 9751:308a0d822d18 3.2.x
Keep configuration and data in distinct directories
This allows having distinct volumes for configuration and data
(artifact database, generated mapfiles and shapefiles, etc.).
While at it, cleanup MapServer configuration a little bit.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Tue, 11 Oct 2022 11:42:09 +0200 |
parents | 68c6fe74a276 |
children | 0834c2591e14 |
rev | line source |
---|---|
9734
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
1 # Docker file for D4E River MapServer |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
2 # with support for PostgreSQL and Oracle databases |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
3 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
4 FROM centos:7 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
5 MAINTAINER tom@intevation.de |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
6 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
7 # Necessary to run further yum-installs inside Docker container, |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
8 # if not already part of the base image: |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
9 RUN yum -q -y install yum-plugin-ovl && rpm --rebuilddb |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
10 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
11 # Install prerequisites |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
12 RUN yum -q -y install curl ca-certificates epel-release \ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
13 gnu-free-sans-fonts httpd |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
14 RUN yum -q -y install gcc-c++ postgresql-devel gd-devel giflib-devel proj-devel \ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
15 proj-epsg prelink make |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
16 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
17 # Install Oracle client |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
18 RUN curl -s https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
19 -o /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
20 ADD ol7-temp.repo /etc/yum.repos.d/ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
21 RUN yum -q -y install oraclelinux-release-el7 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
22 RUN mv /etc/yum.repos.d/ol7-temp.repo /etc/yum.repos.d/ol7-temp.repo.disabled |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
23 RUN yum -q -y install oracle-release-el7 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
24 RUN yum -q -y install oracle-instantclient19.9-basic \ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
25 oracle-instantclient19.9-devel |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
26 RUN yum-config-manager --disable oracle*,ol7* |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
27 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
28 # Install MapServer |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
29 WORKDIR /opt/mapserver |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
30 RUN curl -s https://download.osgeo.org/mapserver/mapserver-6.0.6.tar.gz | tar xz |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
31 WORKDIR mapserver-6.0.6 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
32 RUN sed -i "s@oracle/10\*/client@oracle/19.9/client64@g" configure |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
33 RUN ./configure -q --with-proj --with-postgis --with-oraclespatial=/usr \ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
34 CFLAGS=-w CXXFLAGS=-w |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
35 RUN make -s |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
36 WORKDIR /opt/mapserver |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
37 RUN ln -s mapserver-6.0.6/mapserv |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
38 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
39 # Volume to share mapfiles with artifact server. |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
40 # Has to be the same path as in artifact server container because mapfiles |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
41 # contain absolute paths. |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
42 VOLUME /opt/d4e/bin |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
43 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
44 # CGI scripts |
9749
68c6fe74a276
Allow changing CGI scripts without re-building
Tom Gottfried <tom@intevation.de>
parents:
9734
diff
changeset
|
45 ADD mapserver/cgi-bin /var/www/cgi-bin |
9734
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
46 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
47 # httpd config |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
48 ADD httpd-mapserver.conf /etc/httpd/conf.d/ |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
49 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
50 EXPOSE 80 |
95496d21b4da
Add MapServer to Docker setup
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
51 CMD ["/usr/sbin/httpd", "-DFOREGROUND"] |