Pārlūkot izejas kodu

Dockerfiles moved into distro specific subdirs

- Dockerfiles moved into distro specific subdirs to avoid README clutter
- wget silenced
- change of tests to download rather than ADD
- minor syncs to master
Markus Neteler 5 gadi atpakaļ
vecāks
revīzija
37c996a7d3

+ 29 - 12
docker/Dockerfile_alpine

@@ -2,8 +2,8 @@ FROM alpine:edge
 
 # Based on:
 # https://github.com/mundialis/docker-grass-gis/blob/master/Dockerfile
-LABEL authors="Pietro Zambelli"
-LABEL maintainer="peter.zamb@gmail.com"
+LABEL authors="Pietro Zambelli,Markus Neteler"
+LABEL maintainer="peter.zamb@gmail.com,neteler@osgeo.org"
 
 # PACKAGES VERSIONS
 ARG GRASS_VERSION=7.8
@@ -15,12 +15,13 @@ ARG PROJ_DATUMGRID_VERSION=1.8
 # CONFIG VARIABLES
 # ================
 
-# set configuration options
+# set configuration options, without wxGUI
 ENV GRASS_CONFIG="\
       --enable-largefile \
       --with-cxx \
       --with-proj --with-proj-share=/usr/share/proj \
       --with-gdal \
+      --with-pdal \
       --with-python \
       --with-geos \
       --with-sqlite \
@@ -64,6 +65,7 @@ ENV PACKAGES="\
       gettext \
       geos \
       gnutls \
+      laszip \
       libbz2 \
       libjpeg-turbo \
       libpng \
@@ -72,6 +74,7 @@ ENV PACKAGES="\
       ncurses \
       openjpeg \
       openblas \
+      pdal \
       py3-numpy \
       py3-pillow \
       py3-six \
@@ -94,12 +97,14 @@ ENV PACKAGES="\
       gdal-dev \
       geos-dev \
       gnutls-dev \
+      laszip-dev \
       libc6-compat \
       libjpeg-turbo-dev \
       libpng-dev \
       make \
       openjpeg-dev \
       openblas-dev \
+      pdal-dev \
       postgresql-dev \
       python3-dev \
       py3-numpy-dev \
@@ -144,15 +149,15 @@ RUN echo "Install main packages";\
             --virtual .build-deps $GRASS_BUILD_PACKAGES; \
     # echo LANG="en_US.UTF-8" > /etc/default/locale;
     #
-    # install the latest projection library for GRASS GIS
+    # install the latest (and compatible) projection library for GRASS GIS
     #
     echo "Install PROJ-$PROJ_VERSION";\
-    echo "  => Dowload proj-$PROJ_VERSION";\
-    wget http://download.osgeo.org/proj/proj-$PROJ_VERSION.tar.gz && \
+    echo "  => Downloading proj-$PROJ_VERSION";\
+    wget -q http://download.osgeo.org/proj/proj-$PROJ_VERSION.tar.gz && \
     tar xzvf proj-$PROJ_VERSION.tar.gz && \
     cd /src/proj-$PROJ_VERSION/ && \
-    echo "  => Dowload datumgrid-$PROJ_DATUMGRID_VERSION" &&\
-    wget http://download.osgeo.org/proj/proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
+    echo "  => Downloading datumgrid-$PROJ_DATUMGRID_VERSION" &&\
+    wget -q http://download.osgeo.org/proj/proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
     cd nad && \
     unzip ../proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
     cd .. && \
@@ -167,8 +172,8 @@ RUN echo "Install main packages";\
     # Checkout and install GRASS GIS
     #
     echo "Install GRASS GIS";\
-    echo "  => Dowload grass-$GRASS_VERSION";\
-    wget https://grass.osgeo.org/grass`echo $GRASS_VERSION | tr -d .`/source/snapshot/grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz && \
+    echo "  => Downloading grass-$GRASS_VERSION";\
+    wget -q https://grass.osgeo.org/grass`echo $GRASS_VERSION | tr -d .`/source/snapshot/grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz && \
     # unpack source code package and remove tarball archive:
     mkdir /src/grass_build && \
     tar xfz grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz --strip=1 -C /src/grass_build && \
@@ -225,6 +230,18 @@ RUN pip install grass-session
 # set GRASSBIN
 ENV GRASSBIN="/usr/local/bin/grass"
 
+# ===========================
+# TEST grass-session and PDAL
+# ===========================
+
+WORKDIR /tmp
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/simple.laz -O simple.laz
+WORKDIR /scripts
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/test_grass_session.py -O test_grass_session.py
+## just scan the LAZ file
+# TODO: fix test
+#RUN /usr/bin/python3 /scripts/test_grass_session.py
+
 # ========
 # FINALIZE
 # ========
@@ -238,7 +255,7 @@ VOLUME /grassdb
 ENV GRASS_SKIP_MAPSET_OWNER_CHECK=1 \
     LC_ALL="en_US.UTF-8"
 
-# debug
-RUN $GRASSBIN --config svn_revision version
+# show installed version
+RUN $GRASSBIN --tmp-location EPSG:4326 --exec g.version -rge
 
 CMD [$GRASSBIN, "--version"]

+ 26 - 9
docker/Dockerfile_alpine_wxgui

@@ -21,6 +21,7 @@ ENV GRASS_CONFIG="\
       --with-cxx \
       --with-proj --with-proj-share=/usr/share/proj \
       --with-gdal \
+      --with-pdal \
       --with-python \
       --with-geos \
       --with-sqlite \
@@ -66,6 +67,7 @@ ENV PACKAGES="\
       geos \
       gnutls \
       gtk+3.0 \
+      laszip \
       libbz2 \
       libjpeg-turbo \
       libpng \
@@ -74,6 +76,7 @@ ENV PACKAGES="\
       ncurses \
       openjpeg \
       openblas \
+      pdal \
       py3-numpy \
       py3-pillow \
       py3-six \
@@ -99,12 +102,14 @@ ENV PACKAGES="\
       geos-dev \
       gnutls-dev \
       gtk+3.0-dev \
+      laszip-dev \
       libc6-compat \
       libjpeg-turbo-dev \
       libpng-dev \
       make \
       openjpeg-dev \
       openblas-dev \
+      pdal-dev \
       postgresql-dev \
       python3-dev \
       py3-numpy-dev \
@@ -154,15 +159,15 @@ RUN echo "Install main packages";\
     # compile wxPython, unfortunately there is no Alpine package (yet) - compilation is slow, though!
     $PYTHONBIN -m pip install -U pathlib2 wxPython && \
     #
-    # install the latest projection library for GRASS GIS
+    # install the latest (and compatible) projection library for GRASS GIS
     #
     echo "Install PROJ-$PROJ_VERSION";\
-    echo "  => Dowload proj-$PROJ_VERSION";\
-    wget http://download.osgeo.org/proj/proj-$PROJ_VERSION.tar.gz && \
+    echo "  => Downloading proj-$PROJ_VERSION";\
+    wget -q http://download.osgeo.org/proj/proj-$PROJ_VERSION.tar.gz && \
     tar xzvf proj-$PROJ_VERSION.tar.gz && \
     cd /src/proj-$PROJ_VERSION/ && \
-    echo "  => Dowload datumgrid-$PROJ_DATUMGRID_VERSION" &&\
-    wget http://download.osgeo.org/proj/proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
+    echo "  => Downloading datumgrid-$PROJ_DATUMGRID_VERSION" &&\
+    wget -q http://download.osgeo.org/proj/proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
     cd nad && \
     unzip ../proj-datumgrid-$PROJ_DATUMGRID_VERSION.zip && \
     cd .. && \
@@ -177,8 +182,8 @@ RUN echo "Install main packages";\
     # Checkout and install GRASS GIS
     #
     echo "Install GRASS GIS";\
-    echo "  => Dowload grass-$GRASS_VERSION";\
-    wget https://grass.osgeo.org/grass`echo $GRASS_VERSION | tr -d .`/source/snapshot/grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz && \
+    echo "  => Downloading grass-$GRASS_VERSION";\
+    wget -q https://grass.osgeo.org/grass`echo $GRASS_VERSION | tr -d .`/source/snapshot/grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz && \
     # unpack source code package and remove tarball archive:
     mkdir /src/grass_build && \
     tar xfz grass-$GRASS_VERSION.git_src_snapshot_latest.tar.gz --strip=1 -C /src/grass_build && \
@@ -235,6 +240,18 @@ RUN pip install grass-session
 # set GRASSBIN
 ENV GRASSBIN="/usr/local/bin/grass"
 
+# ===========================
+# TEST grass-session and PDAL
+# ===========================
+
+WORKDIR /tmp
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/simple.laz -O simple.laz
+WORKDIR /scripts
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/test_grass_session.py -O test_grass_session.py
+## just scan the LAZ file
+# TODO: fix test
+#RUN /usr/bin/python3 /scripts/test_grass_session.py
+
 # ========
 # FINALIZE
 # ========
@@ -248,7 +265,7 @@ VOLUME /grassdb
 ENV GRASS_SKIP_MAPSET_OWNER_CHECK=1 \
     LC_ALL="en_US.UTF-8"
 
-# debug
-RUN $GRASSBIN --config svn_revision version
+# show installed version
+RUN $GRASSBIN --tmp-location EPSG:4326 --exec g.version -rge
 
 CMD [$GRASSBIN, "--version"]

docker/README_alpine.md → docker/alpine/README_alpine.md


+ 8 - 7
docker/Dockerfile_debian_pdal

@@ -57,6 +57,7 @@ RUN apt-get update && apt-get upgrade -y && \
     libsqlite3-dev \
     libtiff-dev \
     libzstd-dev \
+    locales \
     make \
     mesa-common-dev \
     moreutils \
@@ -79,8 +80,7 @@ RUN apt-get update && apt-get upgrade -y && \
     vim \
     wget \
     zip \
-    zlib1g-dev \
-    locales
+    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
@@ -241,11 +241,12 @@ ENV GRASSBIN "/usr/local/bin/grass"
 ENV PYTHONPATH "${PYTHONPATH}:$GISBASE/etc/python/"
 ENV LD_LIBRARY_PATH "$LD_LIBRARY_PATH:$GISBASE/lib"
 
-## TODO check path
-#ADD testdata/test_grass_session.py /scripts
-#ADD testdata/simple.laz /tmp
-## simple test: just scan the LAZ file
-#RUN /usr/bin/python3 /scripts/test_grass_session.py
+WORKDIR /tmp
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/simple.laz -O simple.laz
+WORKDIR /scripts
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/test_grass_session.py -O test_grass_session.py
+## just scan the LAZ file
+RUN /usr/bin/python3 /scripts/test_grass_session.py
 
 WORKDIR /grassdb
 VOLUME /grassdb

docker/README_debian.md → docker/debian/README_debian.md


+ 22 - 21
docker/Dockerfile_ubuntu_pdal

@@ -88,10 +88,10 @@ RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen
 
 ## install the latest projection library for GRASS GIS
 WORKDIR /src
-RUN wget http://download.osgeo.org/proj/proj-${PROJ_VERSION}.tar.gz && \
-    tar xzvf proj-${PROJ_VERSION}.tar.gz && \
+RUN wget -q http://download.osgeo.org/proj/proj-${PROJ_VERSION}.tar.gz && \
+    tar xzf proj-${PROJ_VERSION}.tar.gz && \
     cd /src/proj-${PROJ_VERSION}/ && \
-    wget http://download.osgeo.org/proj/proj-datumgrid-${PROJ_DATUMGRID_VERSION}.zip && \
+    wget -q http://download.osgeo.org/proj/proj-datumgrid-${PROJ_DATUMGRID_VERSION}.zip && \
     cd nad && \
     unzip ../proj-datumgrid-${PROJ_DATUMGRID_VERSION}.zip && \
     cd .. && \
@@ -102,7 +102,7 @@ RUN wget http://download.osgeo.org/proj/proj-${PROJ_VERSION}.tar.gz && \
 ## install laz-perf
 RUN apt-get install cmake
 WORKDIR /src
-RUN wget https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz -O laz-perf-${LAZ_PERF_VERSION}.tar.gz && \
+RUN wget -q https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz -O laz-perf-${LAZ_PERF_VERSION}.tar.gz && \
     tar -zxf laz-perf-${LAZ_PERF_VERSION}.tar.gz && \
     cd laz-perf-${LAZ_PERF_VERSION} && \
     mkdir build && \
@@ -115,22 +115,22 @@ RUN wget https://github.com/hobu/laz-perf/archive/${LAZ_PERF_VERSION}.tar.gz -O
 WORKDIR /src
 RUN mkdir vdatum && \
     cd vdatum && \
-    wget http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj; \
-    wget http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj; \
+    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
 
 ## install pdal
 ENV NUMTHREADS=4
 WORKDIR /src
-RUN wget \
+RUN wget -q \
  https://github.com/PDAL/PDAL/releases/download/${PDAL_VERSION}/PDAL-${PDAL_VERSION}-src.tar.gz && \
     tar xfz PDAL-${PDAL_VERSION}-src.tar.gz && \
     cd /src/PDAL-${PDAL_VERSION}-src && \
@@ -221,8 +221,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
 
-# TODO rename when 'code_revision' is available
-RUN grass --config svn_revision version
+# show GRASS GIS, PROJ, GDAL etc versions
+RUN grass --tmp-location EPSG:4326 --exec g.version -rge
 
 # Reduce the image size
 RUN apt-get autoremove -y
@@ -242,11 +242,12 @@ ENV GRASSBIN "/usr/local/bin/grass"
 ENV PYTHONPATH "${PYTHONPATH}:$GISBASE/etc/python/"
 ENV LD_LIBRARY_PATH "$LD_LIBRARY_PATH:$GISBASE/lib"
 
-## TODO check path
-#ADD testdata/test_grass_session.py /scripts
-#ADD testdata/simple.laz /tmp
-## simple test: just scan the LAZ file
-#RUN /usr/bin/python3 /scripts/test_grass_session.py
+WORKDIR /tmp
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/simple.laz -O simple.laz
+WORKDIR /scripts
+RUN wget -q https://raw.githubusercontent.com/OSGeo/grass/master/docker/testdata/test_grass_session.py -O test_grass_session.py
+## just scan the LAZ file
+RUN /usr/bin/python3 /scripts/test_grass_session.py
 
 WORKDIR /grassdb
 VOLUME /grassdb

docker/README_ubuntu.md → docker/ubuntu/README_ubuntu.md