diff --git a/mapserver/Dockerfile b/mapserver/Dockerfile index dae3972c36a635ca95ab3b8b8348802467cd4ddf..da386a09df0380ea73755a610cb28c19d2113416 100644 --- a/mapserver/Dockerfile +++ b/mapserver/Dockerfile @@ -1,30 +1,111 @@ -FROM tiledb/tiledb-geospatial:1.7.0 - -WORKDIR /work +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=GMT +ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH} +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +RUN apt-get update && apt-get install -y \ + gosu \ + pwgen \ + tzdata \ + gcc \ + g++ \ + automake \ + build-essential \ + cmake \ + sqlite \ + libsqlite3-dev \ + libxml2-dev \ + libjpeg-dev \ + libjpeg-turbo8 \ + libjpeg-turbo8-dev \ + libpng-dev \ + libfreetype6 \ + libfreetype6-dev \ + libzstd-dev \ + libnetcdf-dev \ + python3-pip \ + pkg-config \ + git \ + wget \ + curl \ + unzip \ + libcurl4 \ + libcurl4-openssl-dev \ + zlib1g-dev \ + libfribidi-dev \ + libharfbuzz-dev \ + libcairo2-dev \ + libfcgi-dev \ + libgeos++-dev \ + libpq-dev \ + postgresql-server-dev-all \ + libxml2-dev \ + libgif-dev \ + libprotobuf-dev \ + protobuf-compiler \ + libprotobuf-c-dev \ + libprotobuf-c1 \ + libprotobuf-dev \ + protobuf-c-compiler \ + && rm -rf /var/lib/apt/lists/* -# FIXME: Remove once added to parent image -RUN pip3 install shapely +# Install libtiff +RUN mkdir -p /build_deps && cd /build_deps \ + && wget --no-check-certificate https://download.osgeo.org/libtiff/tiff-4.3.0.tar.gz \ + && tar -zxf tiff-4.3.0.tar.gz \ + && cd tiff-4.3.0 \ + && ./configure \ + && make \ + && make install + +# Install Proj +RUN cd /build_deps \ + && git clone https://github.com/OSGeo/PROJ.git -b 8.2.1 && cd PROJ \ + && mkdir -p build && cd build \ + && cmake .. \ + && make -j$(nproc) \ + && make install -RUN apt-get -y update && \ - apt-get -y upgrade && \ - apt-get -y install gcc g++ cmake sqlite3 libsqlite3-dev pkg-config bash-completion curl subversion && \ - apt-get -y clean +# Install libgeotiff +RUN cd /build_deps \ + && wget --no-check-certificate https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.7.1.tar.gz \ + && tar -zxf libgeotiff-1.7.1.tar.gz \ + && cd libgeotiff-1.7.1 \ + && mkdir -p build && cd build \ + && cmake .. \ + && make \ + && make install + +# Install GDAL +RUN cd /build_deps \ + && git clone --depth 1 --branch v3.5.0alpha1 https://github.com/OSGeo/gdal.git && cd gdal \ + && ./autogen.sh \ + && ./configure --with-crypto=no --with-curl=yes --with-netcdf=yes \ + && make -j$(nproc) \ + && make install +# Install Cython, Rasterio, and Fiona +RUN cd /build_deps && pip3 install cython rasterio fiona shapely pyproj -# FIXME: Remove if/when upstream image builds with fcgi -# Install Mapserver (unstable) -RUN mkdir -p /build_deps && cd /build_deps \ - && apt-get -y update \ -# && apt-get install -y libprotobuf17 zlib1g-dev libpng-dev libjpeg-turbo8 libfreetype6 libfribidi-dev libharfbuzz-dev libcairo2-dev libfcgi-dev libgeos++-dev postgresql postgis libxml2-dev libgif-dev libjpeg-turbo8-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libprotobuf-c1 libprotobuf-dev protobuf-c-compiler \ - && apt-get install -y zlib1g-dev libpng-dev libjpeg-turbo8 libfreetype6 libfribidi-dev libharfbuzz-dev libcairo2-dev libfcgi-dev libgeos++-dev libpq-dev postgresql-server-dev-all libxml2-dev libgif-dev libjpeg-turbo8-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libprotobuf-c1 libprotobuf-dev protobuf-c-compiler \ - && apt-get -y clean \ +# Install Mapserver +RUN cd /build_deps \ && git clone https://github.com/mapserver/mapserver.git && cd mapserver \ - && git checkout 0fcc810f0b559c800f950db78a79fa6574799f23 \ + && git checkout rel-7-6-4 \ && mkdir -p build && cd build \ - && cmake .. -DWITH_PROTOBUFC=OFF -DWITH_POSTGIS=OFF \ + && cmake .. -DWITH_GIF=OFF -DWITH_HARFBUZZ=OFF -DWITH_PROTOBUFC=OFF -DWITH_FRIBIDI=OFF -DWITH_POSTGIS=ON -DWITH_GEOS=OFF -DWITH_FCGI=OFF -DWITH_CAIRO=OFF \ && make -j$(nproc) \ - && make install \ - && cd && rm -rf /build_deps + && make install + +# Clean up +RUN cd /tmp && rm -r /build_deps + + + + +WORKDIR /work # apache # http://www.inanzzz.com/index.php/post/rhsb/running-apache-server-as-foreground-on-ubuntu-with-dockerfile @@ -39,18 +120,15 @@ ENV APACHE_SERVER_NAME localhost # install httpd runtime dependencies # https://httpd.apache.org/docs/2.4/install.html#requirements -RUN mkdir -p /build_deps && cd /build_deps && \ - apt-get -y install apache2 libapache2-mod-fcgid && \ +RUN apt-get update && apt-get -y install apache2 libapache2-mod-fcgid libapache2-mod-php php-common php-cli php-fpm php && \ ls /etc/apache2/mods-available && \ ls /etc/apache2/mods-enabled && \ - apt-get -y install libapache2-mod-php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2 && \ a2enmod actions proxy_fcgi setenvif cgi fcgid rewrite && \ - a2enconf php7.2-fpm serve-cgi-bin && \ + a2enconf php7.4-fpm serve-cgi-bin && \ apt-get -y clean && \ rm -rf /var/lib/apt/lists/* -RUN apt-get -y update && apt-get install -y unzip \ - && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip \ +RUN curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip \ && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip \ && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/physical/ne_10m_lakes.zip \ && curl -LOk https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_county_500k.zip \ @@ -66,9 +144,7 @@ RUN apt-get -y update && apt-get install -y unzip \ && unzip -d /work/shapefiles ne_10m_graticules_5.zip \ && unzip -d /work/shapefiles ne_10m_graticules_10.zip \ && chmod a+r /work/shapefiles/* \ - && rm -f ne_*.zip cb_*.zip \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* + && rm -f ne_*.zip cb_*.zip # Install Fonts for mapserver labels RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections \