|
@@ -1,194 +0,0 @@
|
|
|
-FROM ubuntu:19.10
|
|
|
-
|
|
|
-LABEL authors="Carmen Tawalika,Markus Neteler,Anika Bettge"
|
|
|
-LABEL maintainer="tawalika@mundialis.de,neteler@mundialis.de,bettge@mundialis.de"
|
|
|
-
|
|
|
-ENV DEBIAN_FRONTEND noninteractive
|
|
|
-
|
|
|
-SHELL ["/bin/bash", "-c"]
|
|
|
-
|
|
|
-WORKDIR /tmp
|
|
|
-
|
|
|
-RUN apt-get update && apt-get upgrade -y && \
|
|
|
- apt-get install -y --no-install-recommends --no-install-suggests \
|
|
|
- build-essential \
|
|
|
- bison \
|
|
|
- bzip2 \
|
|
|
- cmake \
|
|
|
- curl \
|
|
|
- flex \
|
|
|
- g++ \
|
|
|
- gcc \
|
|
|
- gdal-bin \
|
|
|
- git \
|
|
|
- language-pack-en-base \
|
|
|
- libbz2-dev \
|
|
|
- libcairo2 \
|
|
|
- libcairo2-dev \
|
|
|
- libcurl4-gnutls-dev \
|
|
|
- libfftw3-bin \
|
|
|
- libfftw3-dev \
|
|
|
- libfreetype6-dev \
|
|
|
- libgdal-dev \
|
|
|
- libgeos-dev \
|
|
|
- libgsl0-dev \
|
|
|
- libjpeg-dev \
|
|
|
- libjsoncpp-dev \
|
|
|
- libnetcdf-dev \
|
|
|
- libncurses5-dev \
|
|
|
- libopenblas-base \
|
|
|
- libopenblas-dev \
|
|
|
- libopenjp2-7 \
|
|
|
- libopenjp2-7-dev \
|
|
|
- libpdal-dev \
|
|
|
- libpdal-plugins \
|
|
|
- libpdal-plugin-python \
|
|
|
- libpnglite-dev \
|
|
|
- libpq-dev \
|
|
|
- libproj-dev \
|
|
|
- libpython3-all-dev \
|
|
|
- libsqlite3-dev \
|
|
|
- libtiff-dev \
|
|
|
- libzstd-dev \
|
|
|
- locales \
|
|
|
- make \
|
|
|
- mesa-common-dev \
|
|
|
- moreutils \
|
|
|
- ncurses-bin \
|
|
|
- netcdf-bin \
|
|
|
- pdal \
|
|
|
- proj-bin \
|
|
|
- proj-data \
|
|
|
- python3 \
|
|
|
- python3-dateutil \
|
|
|
- python3-dev \
|
|
|
- python3-magic \
|
|
|
- python3-numpy \
|
|
|
- python3-pil \
|
|
|
- python3-pip \
|
|
|
- python3-ply \
|
|
|
- python3-setuptools \
|
|
|
- python3-venv \
|
|
|
- software-properties-common \
|
|
|
- sqlite3 \
|
|
|
- subversion \
|
|
|
- unzip \
|
|
|
- vim \
|
|
|
- wget \
|
|
|
- zip \
|
|
|
- zlib1g-dev
|
|
|
-
|
|
|
-RUN echo LANG="en_US.UTF-8" > /etc/default/locale
|
|
|
-RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen
|
|
|
-
|
|
|
-## TODO check if still needed
|
|
|
-## fetch vertical datums and store into PROJ dir
|
|
|
-WORKDIR /src
|
|
|
-RUN mkdir vdatum && \
|
|
|
- cd vdatum && \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj; \
|
|
|
- wget -q http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj; \
|
|
|
- cd .. && \
|
|
|
- rm -rf vdatum
|
|
|
-
|
|
|
-# copy grass gis source
|
|
|
-WORKDIR /src
|
|
|
-COPY . /src/grass_build/
|
|
|
-WORKDIR /src/grass_build
|
|
|
-
|
|
|
-# Set environmental variables for GRASS GIS compilation, without debug symbols
|
|
|
-# Set gcc/g++ environmental variables for GRASS GIS compilation, without debug symbols
|
|
|
-ENV MYCFLAGS "-O2 -std=gnu99 -m64"
|
|
|
-ENV MYLDFLAGS "-s"
|
|
|
-# CXX stuff:
|
|
|
-ENV LD_LIBRARY_PATH "/usr/local/lib"
|
|
|
-ENV LDFLAGS "$MYLDFLAGS"
|
|
|
-ENV CFLAGS "$MYCFLAGS"
|
|
|
-ENV CXXFLAGS "$MYCXXFLAGS"
|
|
|
-
|
|
|
-# Configure compile and install GRASS GIS
|
|
|
-ENV GRASS_PYTHON=/usr/bin/python3
|
|
|
-ENV NUMTHREADS=4
|
|
|
-RUN make distclean || echo "nothing to clean"
|
|
|
-RUN /src/grass_build/configure \
|
|
|
- --with-cxx \
|
|
|
- --enable-largefile \
|
|
|
- --with-proj --with-proj-share=/usr/share/proj \
|
|
|
- --with-gdal=/usr/bin/gdal-config \
|
|
|
- --with-geos \
|
|
|
- --with-sqlite \
|
|
|
- --with-cairo --with-cairo-ldflags=-lfontconfig \
|
|
|
- --with-freetype --with-freetype-includes="/usr/include/freetype2/" \
|
|
|
- --with-fftw \
|
|
|
- --with-postgres=yes --with-postgres-includes="/usr/include/postgresql" \
|
|
|
- --with-netcdf \
|
|
|
- --with-zstd \
|
|
|
- --with-bzlib \
|
|
|
- --with-pdal \
|
|
|
- --without-mysql \
|
|
|
- --without-odbc \
|
|
|
- --without-openmp \
|
|
|
- --without-ffmpeg \
|
|
|
- --without-opengl \
|
|
|
- && make -j $NUMTHREADS \
|
|
|
- && make install && ldconfig
|
|
|
-
|
|
|
-# Unset environmental variables to avoid later compilation issues
|
|
|
-ENV INTEL ""
|
|
|
-ENV MYCFLAGS ""
|
|
|
-ENV MYLDFLAGS ""
|
|
|
-ENV MYCXXFLAGS ""
|
|
|
-ENV LD_LIBRARY_PATH ""
|
|
|
-ENV LDFLAGS ""
|
|
|
-ENV CFLAGS ""
|
|
|
-ENV CXXFLAGS ""
|
|
|
-
|
|
|
-# set SHELL var to avoid /bin/sh fallback in interactive GRASS GIS sessions
|
|
|
-ENV SHELL /bin/bash
|
|
|
-ENV LC_ALL "en_US.UTF-8"
|
|
|
-ENV GRASS_SKIP_MAPSET_OWNER_CHECK 1
|
|
|
-
|
|
|
-# Create generic GRASS GIS binary name regardless of version number
|
|
|
-RUN ln -sf `find /usr/local/bin -name "grass??" | sort | tail -n 1` /usr/local/bin/grass
|
|
|
-# Create generic GRASS GIS lib name regardless of version number
|
|
|
-RUN ln -sf `grass --config path` /usr/local/grass
|
|
|
-
|
|
|
-# show GRASS GIS, PROJ, GDAL etc versions
|
|
|
-RUN grass --tmp-location EPSG:4326 --exec g.version -rge && \
|
|
|
- pdal --version && \
|
|
|
- python3 --version
|
|
|
-
|
|
|
-# Reduce the image size
|
|
|
-RUN apt-get autoremove -y
|
|
|
-RUN apt-get clean -y
|
|
|
-
|
|
|
-WORKDIR /scripts
|
|
|
-
|
|
|
-# install external GRASS GIS session Python API
|
|
|
-RUN pip3 install grass-session
|
|
|
-
|
|
|
-# install GRASS GIS extensions
|
|
|
-RUN grass --tmp-location EPSG:4326 --exec g.extension extension=r.in.pdal
|
|
|
-
|
|
|
-# add GRASS GIS envs for python usage
|
|
|
-ENV GISBASE "/usr/local/grass/"
|
|
|
-ENV GRASSBIN "/usr/local/bin/grass"
|
|
|
-ENV PYTHONPATH "${PYTHONPATH}:$GISBASE/etc/python/"
|
|
|
-ENV LD_LIBRARY_PATH "$LD_LIBRARY_PATH:$GISBASE/lib"
|
|
|
-
|
|
|
-WORKDIR /tmp
|
|
|
-COPY docker/testdata/simple.laz .
|
|
|
-WORKDIR /scripts
|
|
|
-COPY docker/testdata/test_grass_session.py .
|
|
|
-## just scan the LAZ file
|
|
|
-RUN /usr/bin/python3 /scripts/test_grass_session.py
|
|
|
-
|
|
|
-WORKDIR /grassdb
|
|
|
-VOLUME /grassdb
|