From a5daf6173b081ccea7501033cedbcedff02b5c75 Mon Sep 17 00:00:00 2001
From: Tim Sutton <tim@kartoza.com>
Date: Wed, 16 Mar 2016 03:38:58 +0800
Subject: [PATCH] Merge pull request #4 from shane-axiom/master
---
Dockerfile | 103 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 91 insertions(+), 12 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 9c8243b..c2a94bc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,19 +16,98 @@
#-------------Application Specific Stuff ----------------------------------------------------
-RUN apt-get -y install unzip openjdk-7-jre-headless openjdk-7-jre
+ENV GS_VERSION 2.6.1
+ENV GEOSERVER_DATA_DIR /opt/geoserver/data_dir
+
+# Unset Java related ENVs since they may change with Oracle JDK
+ENV JAVA_VERSION=
+ENV JAVA_DEBIAN_VERSION=
+
+# Set JAVA_HOME to /usr/lib/jvm/default-java and link it to OpenJDK installation
+RUN ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/default-java
+ENV JAVA_HOME /usr/lib/jvm/default-java
ADD resources /tmp/resources
-# A little logic that will fetch the geoserver zip file if it
-# is not available locally in the resources dir and
-RUN if [ ! -f /tmp/resources/geoserver.zip ]; then \
- wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/2.6.1/geoserver-2.6.1-bin.zip -O /tmp/resources/geoserver.zip; \
- fi; \
- unzip /tmp/resources/geoserver.zip -d /opt && mv -v /opt/geoserver* /opt/geoserver
-ENV GEOSERVER_HOME /opt/geoserver
-ENV JAVA_HOME /usr/
+# If a matching Oracle JDK tar.gz exists in /tmp/resources, move it to /var/cache/oracle-jdk7-installer
+# where oracle-java7-installer will detect it
+RUN if ls /tmp/resources/*jdk-*-linux-x64.tar.gz > /dev/null 2>&1; then \
+ mkdir /var/cache/oracle-jdk7-installer && \
+ mv /tmp/resources/*jdk-*-linux-x64.tar.gz /var/cache/oracle-jdk7-installer/; \
+ fi;
-#ENTRYPOINT "/opt/geoserver/bin/startup.sh"
-CMD "/opt/geoserver/bin/startup.sh"
-EXPOSE 8080
+# Install Oracle JDK (and uninstall OpenJDK JRE) if the build-arg ORACLE_JDK = true or an Oracle tar.gz
+# was found in /tmp/resources
+ARG ORACLE_JDK=false
+RUN if ls /var/cache/oracle-jdk7-installer/*jdk-*-linux-x64.tar.gz > /dev/null 2>&1 || [ "$ORACLE_JDK" = true ]; then \
+ apt-get autoremove --purge -y openjdk-7-jre-headless && \
+ echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true \
+ | debconf-set-selections && \
+ echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" \
+ > /etc/apt/sources.list.d/webupd8team-java.list && \
+ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 && \
+ apt-get update && \
+ apt-get install -y oracle-java7-installer oracle-java7-set-default && \
+ ln -s --force /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java && \
+ rm -rf /var/lib/apt/lists/* && \
+ rm -rf /var/cache/oracle-jdk7-installer; \
+ if [ -f /tmp/resources/jce_policy.zip ]; then \
+ unzip -j /tmp/resources/jce_policy.zip -d /tmp/jce_policy && \
+ mv /tmp/jce_policy/*.jar $JAVA_HOME/jre/lib/security/; \
+ fi; \
+ fi;
+
+#Add JAI and ImageIO for great speedy speed.
+WORKDIR /tmp
+RUN wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64.tar.gz && \
+ wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64.tar.gz && \
+ gunzip -c jai-1_1_3-lib-linux-amd64.tar.gz | tar xf - && \
+ gunzip -c jai_imageio-1_1-lib-linux-amd64.tar.gz | tar xf - && \
+ mv /tmp/jai-1_1_3/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
+ mv /tmp/jai-1_1_3/lib/*.so $JAVA_HOME/jre/lib/amd64/ && \
+ mv /tmp/jai_imageio-1_1/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
+ mv /tmp/jai_imageio-1_1/lib/*.so $JAVA_HOME/jre/lib/amd64/ && \
+ rm /tmp/jai-1_1_3-lib-linux-amd64.tar.gz && \
+ rm -r /tmp/jai-1_1_3 && \
+ rm /tmp/jai_imageio-1_1-lib-linux-amd64.tar.gz && \
+ rm -r /tmp/jai_imageio-1_1
+WORKDIR $CATALINA_HOME
+
+# A little logic that will fetch the geoserver war zip file if it
+# is not available locally in the resources dir
+RUN if [ ! -f /tmp/resources/geoserver.zip ]; then \
+ wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip \
+ -O /tmp/resources/geoserver.zip; \
+ fi; \
+ unzip /tmp/resources/geoserver.zip -d /tmp/geoserver \
+ && unzip /tmp/geoserver/geoserver.war -d $CATALINA_HOME/webapps/geoserver \
+ && rm -rf $CATALINA_HOME/webapps/geoserver/data \
+ && rm -rf /tmp/geoserver
+
+# Install any plugin zip files in resources/plugins
+RUN if ls /tmp/resources/plugins/*.zip > /dev/null 2>&1; then \
+ for p in /tmp/resources/plugins/*.zip; do \
+ unzip $p -d /tmp/gs_plugin \
+ && mv /tmp/gs_plugin/*.jar $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/ \
+ && rm -rf /tmp/gs_plugin; \
+ done; \
+ fi
+
+# Overlay files and directories in resources/overlays if they exist
+RUN rm /tmp/resources/overlays/README.txt && \
+ if ls /tmp/resources/overlays/* > /dev/null 2>&1; then \
+ cp -rf /tmp/resources/overlays/* /; \
+ fi;
+
+# Optionally remove Tomcat manager, docs, and examples
+ARG TOMCAT_EXTRAS=true
+RUN if [ "$TOMCAT_EXTRAS" = false ]; then \
+ rm -rf $CATALINA_HOME/webapps/ROOT && \
+ rm -rf $CATALINA_HOME/webapps/docs && \
+ rm -rf $CATALINA_HOME/webapps/examples && \
+ rm -rf $CATALINA_HOME/webapps/host-manager && \
+ rm -rf $CATALINA_HOME/webapps/manager; \
+ fi;
+
+# Delete resources after installation
+RUN rm -rf /tmp/resources
--
Gitblit v0.0.0-SNAPSHOT