Files
Dimas Ciputra d81ee546ef Update geoserver dockerfile (#154)
* Geoserver 2.9.x

* 2.10.x

* Update dockerfile

* Change resources version
2017-12-08 09:23:19 +07:00

116 lines
4.8 KiB
Docker

FROM tomcat:8.5-jre8
MAINTAINER GeoNode Development Team
#
# Set GeoServer version and data directory
#
ENV GEOSERVER_VERSION=2.10.x
ENV GEOSERVER_DATA_DIR="/geoserver_data/data"
# 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-8-openjdk-amd64 /usr/lib/jvm/default-java
ENV JAVA_HOME /usr/lib/jvm/default-java
ADD resources /tmp/resources
# If a matching Oracle JDK tar.gz exists in /tmp/resources, move it to /var/cache/oracle-jdk8-installer
# where oracle-java8-installer will detect it
RUN if ls /tmp/resources/*jdk-*-linux-x64.tar.gz > /dev/null 2>&1; then \
mkdir /var/cache/oracle-jdk8-installer && \
mv /tmp/resources/*jdk-*-linux-x64.tar.gz /var/cache/oracle-jdk8-installer/; \
fi;
# 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-jdk8-installer/*jdk-*-linux-x64.tar.gz > /dev/null 2>&1 || [ "$ORACLE_JDK" = true ]; then \
apt-get autoremove --purge -y openjdk-8-jre-headless && \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true \
| debconf-set-selections && \
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" \
> /etc/apt/sources.list.d/webupd8team-java.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 && \
rm -rf /var/lib/apt/lists/* && \
apt-get update && \
apt-get install -y oracle-java8-installer oracle-java8-set-default && \
ln -s --force /usr/lib/jvm/java-8-oracle /usr/lib/jvm/default-java && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-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;
RUN mkdir -p $GEOSERVER_DATA_DIR
# ADD compiled_geoserver_data /geoserver_data/data
WORKDIR /tmp
RUN if [ ! -f /tmp/resources/jai-1_1_3-lib-linux-amd64.tar.gz ]; then \
wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64.tar.gz -P ./resources;\
fi; \
if [ ! -f /tmp/resources/jai_imageio-1_1-lib-linux-amd64.tar.gz ]; then \
wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64.tar.gz -P ./resources;\
fi; \
mv resources/jai-1_1_3-lib-linux-amd64.tar.gz ./ && \
mv resources/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
#
# Download and install GeoServer
#
RUN if [ ! -f /tmp/resources/geoserver.war ]; then \
wget --progress=bar:force:noscroll http://build.geonode.org/geoserver/latest/geoserver-${GEOSERVER_VERSION}.war \
-O /tmp/resources/geoserver.war; \
fi; \
unzip /tmp/resources/geoserver.war -d $CATALINA_HOME/webapps/geoserver \
&& rm -rf $CATALINA_HOME/webapps/geoserver/data \
&& rm -rf /tmp/geoserver
# Custom settings for envronment variables
ENV GEOSERVER_OPTS "-Xms2G -Xmx2G -XX:MaxPermSize=512m -XX:PermSize=128m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4"
#-XX:+UseConcMarkSweepGC use this rather than parallel GC?
ENV JAVA_OPTS "$JAVA_OPTS $GEOSERVER_OPTS "
# copy the script and perform the run of scripts from entrypoint.sh
RUN mkdir -p /usr/local/tomcat/tmp
WORKDIR /usr/local/tomcat/tmp
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y python python-pip python-dev \
&& pip install --upgrade pip
COPY entrypoint.sh /usr/local/tomcat/tmp
RUN chmod +x /usr/local/tomcat/tmp/entrypoint.sh
# 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
COPY tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml
CMD ["/usr/local/tomcat/tmp/entrypoint.sh"]