diff --git a/Makefile b/Makefile index 9b767d6..0df6ee9 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ cesium_version:=$(shell cat $(CURDIR)/docker/cesium-version.txt) +checkout:=$(shell cat $(CURDIR)/docker/cts-checkout.txt) GOFILES:=$(shell find . -name '*.go') install: $(GOFILES) assets/assets.go @@ -13,13 +14,13 @@ assets/assets.go: .go-bindata data data/smallterrain-blank.terrain: curl --location --progress-bar https://raw.github.com/geo-data/cesium-terrain-builder/master/data/smallterrain-blank.terrain > data/smallterrain-blank.terrain -docker-local: docker/local/cesium-terrain-server.tar.gz docker/local/Cesium-$(cesium_version).zip +docker-local: docker/local/cesium-terrain-server-$(checkout).tar.gz docker/local/Cesium-$(cesium_version).zip docker build -t geodata/cesium-terrain-server:local docker docker/local/Cesium-$(cesium_version).zip: docker/cesium-version.txt curl --location --progress-bar https://cesiumjs.org/releases/Cesium-$(cesium_version).zip > docker/local/Cesium-$(cesium_version).zip -docker/local/cesium-terrain-server.tar.gz: $(GOFILES) docker/cesium-version.txt Makefile - tar --exclude data/* -czvf docker/local/cesium-terrain-server.tar.gz $(GOFILES) docker/cesium-version.txt Makefile data +docker/local/cesium-terrain-server-$(checkout).tar.gz: $(GOFILES) docker/cts-checkout.txt docker/cesium-version.txt Makefile + git archive HEAD --prefix=cesium-terrain-server-$(checkout)/ --format=tar.gz -o docker/local/cesium-terrain-server-$(checkout).tar.gz .PHONY: docker-local install diff --git a/docker/Dockerfile b/docker/Dockerfile index 6c3c4e8..ed21860 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ ENV GOPATH=/usr/local/go/_vendor:/usr/local/go GOBIN=/usr/local/bin # Install the terrain server ADD local/ /tmp/local/ -ADD install-terrain-server.sh /tmp/ +ADD cts-checkout.txt install-terrain-server.sh /tmp/ RUN /tmp/install-terrain-server.sh # Install Cesium.js diff --git a/docker/cts-checkout.txt b/docker/cts-checkout.txt new file mode 100644 index 0000000..1f7391f --- /dev/null +++ b/docker/cts-checkout.txt @@ -0,0 +1 @@ +master diff --git a/docker/install-terrain-server.sh b/docker/install-terrain-server.sh index ab2979d..377fc45 100755 --- a/docker/install-terrain-server.sh +++ b/docker/install-terrain-server.sh @@ -4,17 +4,20 @@ # Install the terrain server # -CTS_DIR=/usr/local/go/src/github.com/geo-data/cesium-terrain-server +# If a local source code archive does not exist, get it from GitHub. +checkout=`cat /tmp/cts-checkout.txt` +archive="/tmp/local/cesium-terrain-server-${checkout}.tar.gz" +if [ ! -f $archive ]; then + wget --no-verbose -O $archive "https://github.com/geo-data/cesium-terrain-server/archive/${checkout}.tar.gz" || exit 1 +fi -# Extract the terrain server code +# Set up the source directory +CTS_DIR=/usr/local/go/src/github.com/geo-data/cesium-terrain-server mkdir -p $CTS_DIR || exit 1 cd $CTS_DIR || exit 1 -if [ ! -f /tmp/local/cesium-terrain-server.tar.gz ]; then - git clone https://github.com/geo-data/cesium-terrain-server.git . || exit 1 -else - tar -xzvf /tmp/local/cesium-terrain-server.tar.gz || exit 1 -fi +# Extract the terrain server code +tar --strip-components=1 -xzf $archive || exit 1 # Build and install the server make install || exit 1