forked from xdocker/xgeoserver

Alex Leith
2016-03-14 8383a53de200b231b029daadaf0ca9abe7d2b91d
Merge remote-tracking branch 'shane-axiom/master'
3 files modified
1 files added
94 ■■■■■ changed files
.gitignore 9 ●●●● patch | view | raw | blame | history
Dockerfile 44 ●●●●● patch | view | raw | blame | history
README.md 27 ●●●●● patch | view | raw | blame | history
resources/overlays/README.txt 14 ●●●●● patch | view | raw | blame | history
.gitignore
@@ -1,3 +1,8 @@
resources/geoserver.zip
resources/plugins/*.zip
resources/*
!resources/plugins/
resources/plugins/*
!resources/plugins/README.txt
!resources/overlays/
resources/overlays/*
!resources/overlays/README.txt
.idea
Dockerfile
@@ -16,12 +16,46 @@
#-------------Application Specific Stuff ----------------------------------------------------
EXPOSE 8080
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
# 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;
# 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;
# A little logic that will fetch the geoserver war zip file if it
# is not available locally in the resources dir
@@ -43,5 +77,11 @@
      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;
# Delete resources after installation
RUN rm -rf /tmp/resources
README.md
@@ -40,6 +40,22 @@
docker build -t kartoza/postgis .
```
### Building with Oracle JDK
To replace OpenJDK Java with the Oracle JDK, set build-arg `OPEN_JDK=true`:
```shell
docker build --build-arg OPEN_JDK=true -t kartoza/postgis .
```
Alternatively, you can download the Oracle JDK 7 Linux x64 tar.gz currently in use by
[webupd8team's Oracle JDK installer](https://launchpad.net/~webupd8team/+archive/ubuntu/java/+packages)
(usually the latest version available from Oracle) and place it in `resources` before building.
To enable strong cryptography when using the Oracle JDK (recommended), download the
[Oracle Java policy jar zip](http://docs.geoserver.org/latest/en/user/production/java.html#oracle-java)
for the correct JDK version and place it at `resources/jce_policy.zip` before building.
### Building with plugins
To build a GeoServer image with plugins (e.g. SQL Server plugin, Excel output plugin),
@@ -47,6 +63,17 @@
`resources/plugins` before building. You should also download the matching version
GeoServer WAR zip file to `resources/geoserver.zip`.
### Building with file system overlays (advanced)
The contents of `resources/overlays` will be copied to the image file system
during the build. For example, to include a static Tomcat `setenv.sh`,
create the file at `resources/overlays/usr/local/tomcat/bin/setenv.sh`.
You can use this functionality to write a static GeoServer directory to
`/opt/geoserver/data_dir`, include additional jar files, and more.
Overlay files will overwrite existing destination files, so be careful!
## Run
You probably want to also have postgis running too. To create a running 
resources/overlays/README.txt
New file
@@ -0,0 +1,14 @@
To include files in the container file system at arbitrary locations, build
a directory structure from / here and include the files at the desired location.
For example, to include a static Tomcat setenv.sh in the build, place it at:
resources/overlays/usr/local/tomcat/bin/setenv.sh
Other overlay examples include static GeoServer data directories, the Marlin renderer, etc.
Note that overlay files will overwrite existing destination files, and that
files in the overlay root will be copied to the container root
(e.g. resources/overlay/somefile.txt will be copied to /somefile.txt).
Be careful!