Skip to content

Commit

Permalink
Merge pull request #149 from jamesmcclain/feature/geonotebook
Browse files Browse the repository at this point in the history
Early GeoNotebook Capability
  • Loading branch information
jamesmcclain committed May 2, 2017
2 parents 0448b81 + a9cd4d6 commit bfda044
Show file tree
Hide file tree
Showing 15 changed files with 648 additions and 631 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ docker/archives/${WHEELNAME}: ${WHEEL}
cp -f ${WHEEL} docker/archives/${WHEELNAME}

docker-build: docker/archives/${ASSEMBLYNAME} docker/archives/${WHEELNAME}
(cd docker && make stage1)
(cd docker && make)

clean:
rm -f ${WHEEL} ${DIST-ASSEMBLY}
Expand Down
1 change: 1 addition & 0 deletions docker/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
archives/
30 changes: 24 additions & 6 deletions docker/Dockerfile.stage1
Original file line number Diff line number Diff line change
@@ -1,12 +1,30 @@
FROM quay.io/geodocker/jupyter:3
FROM quay.io/geodocker/jupyter:4

COPY archives/geotrellis-backend-assembly-0.1.0.jar /blobs/
COPY archives/gdal-and-friends.tar.gz /blobs/
COPY archives/geopyspark-and-friends.tar.gz /blobs/
COPY archives/geotrellis-backend-assembly-0.1.0.jar /blobs/
# Install GDAL, GeoPySpark, &c.
COPY blobs/gdal-and-friends.tar.gz /blobs/
COPY blobs/geopyspark-and-friends.tar.gz /blobs/
COPY blobs/geotrellis-backend-assembly-0.1.0.jar /blobs/
COPY scripts/install-blobs.sh /scripts/
COPY kernels/local/kernel.json /usr/local/share/jupyter/kernels/pyspark/
COPY kernels/yarn/kernel.json /usr/local/share/jupyter/kernels/pysparkyarn/

COPY config/requirements.txt /tmp/requirements.txt
ENV LD_LIBRARY_PATH /home/hadoop/local/gdal/lib
RUN /scripts/install-blobs.sh

# Install GeoNotebook dependencies
RUN pip3 install --user -r /tmp/requirements.txt && \
pip3 install --user "https://github.com/OpenGeoscience/ktile/archive/6f134e86f90242c8393fe1912435a5fb99c6256d.zip"

# Patch and install GeoNotebook
COPY blobs/geonotebook.tar /tmp
COPY config/patch.diff /tmp
RUN (pushd /tmp ; tar axvf geonotebook.tar ; popd) && \
(pushd /tmp/geonotebook ; patch -p1 < /tmp/patch.diff ; pip3 install --user . ; popd) && \
jupyter nbextension enable --py widgetsnbextension && \
jupyter serverextension enable --py geonotebook && \
jupyter nbextension enable --py geonotebook
COPY config/geonotebook.ini /home/hadoop/.local/etc/geonotebook.ini
COPY kernels/geonotebook-local/kernel.json /home/hadoop/.local/share/jupyter/kernels/geonotebook3/kernel.json

# Copy notebook
COPY notebooks/Zork.ipynb /home/hadoop
21 changes: 15 additions & 6 deletions docker/Makefile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
.PHONY: stage0 stage1 all

SRC := archives/gdal-2.1.3.tar.gz archives/geos-3.6.1.tar.bz2 archives/lcms2-2.8.tar.gz archives/libpng-1.6.28.tar.gz archives/proj-4.9.3.tar.gz archives/v2.1.2.tar.gz archives/zlib-1.2.11.tar.gz
SRC := archives/gdal-2.1.3.tar.gz archives/geos-3.6.1.tar.bz2 archives/lcms2-2.8.tar.gz archives/libpng-1.6.28.tar.gz archives/proj-4.9.3.tar.gz archives/openjpeg-v2.1.2.tar.gz archives/zlib-1.2.11.tar.gz
WHL := archives/geopyspark-0.1.0-py3-none-any.whl
JAR := archives/geotrellis-backend-assembly-0.1.0.jar
GDAL-BLOB := archives/gdal-and-friends.tar.gz
PYTHON-BLOB := archives/geopyspark-and-friends.tar.gz
VERSION := 0
VERSION := 1
STAGE0 := jamesmcclain/jupyter-geopyspark:stage0
STAGE1 := quay.io/geodocker/jupyter-geopyspark:$(VERSION)

Expand All @@ -26,16 +26,25 @@ archives/proj-4.9.3.tar.gz:
archives/lcms2-2.8.tar.gz:
(cd archives; curl -L "https://downloads.sourceforge.net/project/lcms/lcms/2.8/lcms2-2.8.tar.gz?r=&ts=1490316968&use_mirror=pilotfiber" -o lcms2-2.8.tar.gz)

archives/v2.1.2.tar.gz:
(cd archives; curl -L "https://github.com/uclouvain/openjpeg/archive/v2.1.2.tar.gz" -o v2.1.2.tar.gz)
archives/openjpeg-v2.1.2.tar.gz:
(cd archives; curl -L "https://github.com/uclouvain/openjpeg/archive/v2.1.2.tar.gz" -o openjpeg-v2.1.2.tar.gz)

archives/gdal-2.1.3.tar.gz:
(cd archives; curl -L "http://download.osgeo.org/gdal/2.1.3/gdal-2.1.3.tar.gz" -o gdal-2.1.3.tar.gz)

archives/dcfcd81ac3e928fc35fe83a5a937561ccee3aa19.zip:
(cd archives; curl -L -O "https://github.com/OpenGeoscience/geonotebook/archive/dcfcd81ac3e928fc35fe83a5a937561ccee3aa19.zip")

archives/geonotebook.tar: archives/dcfcd81ac3e928fc35fe83a5a937561ccee3aa19.zip
(cd archives; unzip dcfcd81ac3e928fc35fe83a5a937561ccee3aa19.zip; mv geonotebook-dcfcd81ac3e928fc35fe83a5a937561ccee3aa19 geonotebook ; tar cvf geonotebook.tar geonotebook/ ; rm -rf geonotebook/)

blobs/%: archives/%
cp -f $< $@

stage0: Dockerfile.stage0
(docker images | grep 'jamesmcclain/jupyter-geopyspark \+stage0') || (docker pull $(STAGE0)) || (build -t $(STAGE0) -f Dockerfile.stage0 .)

$(GDAL-BLOB): $(SRC) scripts/build-blobs.sh archives/zlib-1.2.11.tar.gz archives/libpng-1.6.28.tar.gz archives/geos-3.6.1.tar.bz2 archives/proj-4.9.3.tar.gz archives/lcms2-2.8.tar.gz archives/v2.1.2.tar.gz archives/gdal-2.1.3.tar.gz
$(GDAL-BLOB): $(SRC) scripts/build-blobs.sh archives/gdal-2.1.3.tar.gz archives/geos-3.6.1.tar.bz2 archives/lcms2-2.8.tar.gz archives/libpng-1.6.28.tar.gz archives/proj-4.9.3.tar.gz archives/openjpeg-v2.1.2.tar.gz archives/zlib-1.2.11.tar.gz
docker run -it --rm \
-v $(shell pwd)/archives:/archives:rw \
-v $(shell pwd)/scripts:/scripts:ro \
Expand All @@ -48,7 +57,7 @@ $(PYTHON-BLOB): $(WHL) scripts/gather-libs.sh archives/gdal-and-friends.tar.gz
-v $(shell pwd)/scripts:/scripts:ro \
$(STAGE0) /scripts/gather-libs.sh $(shell id -u) $(shell id -g)

stage1: Dockerfile.stage1 $(JAR) archives/gdal-and-friends.tar.gz archives/geopyspark-and-friends.tar.gz
stage1: Dockerfile.stage1 $(JAR) blobs/geonotebook.tar blobs/geotrellis-backend-assembly-0.1.0.jar blobs/gdal-and-friends.tar.gz blobs/geopyspark-and-friends.tar.gz
docker build -t $(STAGE1) -f Dockerfile.stage1 .

clean:
Expand Down
1 change: 1 addition & 0 deletions docker/blobs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
24 changes: 24 additions & 0 deletions docker/config/geonotebook.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[default]
vis_server = geotrellis
log_level = WARNING

[geotrellis]
url = http://127.0.0.1:8000/user/jack/geotrellis

[geoserver]
username = admin
password = geoserver
url = http://127.0.0.1:8080/geoserver

[ktile]
url = http://127.0.0.1:8000/ktile
default_cache = ktile_default_cache

[ktile_default_cache]
name = Test
path = /tmp/stache
umask = 0000

[basemap]
url = http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
attribution = Tile data &copy; <a href="http://osm.org/copyright"> OpenStreetMap</a> contributors

0 comments on commit bfda044

Please sign in to comment.