Dockerized GeoServer.
- Built on top of Docker's official tomcat image.
- Running tomcat process as non-root user.
- Separate GEOSERVER_DATA_DIR location (on /var/local/geoserver).
- Configurable extensions.
- Injectable UID and GID for better mounted volume management.
- CORS ready.
- Taken care of JVM Options.
- Automatic installation of Microsoft Core Fonts for better labelling compatibility.
- AWS configuration files and scripts in order to deploy easily using Elastic Beanstalk. See github repo. Thanks to @victorzinho
Latest versions with automated builds available on docker registry:
Other experimental dockerfiles (not automated build):
-
oracle
. Uses wnameless/oracle-xe-11g, needs ojdbc7.jar and setting up a database. See the run commands. -
h2-vector
. Plays nicely with oscarfonts/h2:geodb, and includes sample scripts for docker-compose and systemd.
Get the image:
docker pull oscarfonts/geoserver
Run as a service, exposing port 8080 and using a hosted GEOSERVER_DATA_DIR:
docker run -d -p 8080:8080 -v ${PWD}/data_dir:/var/local/geoserver oscarfonts/geoserver
The tomcat user uid and gid can be customized with CUSTOM_UID
and CUSTOM_GID
environment variables, so that the mounted data_dir and exts_dir are accessible by both geoserver and a given host user. Usage example:
docker run -d -p 8080:8080 -e CUSTOM_UID=$(id -u) -e CUSTOM_GID=$(id -g) oscarfonts/geoserver
To add extensions to your GeoServer installation, provide a directory with the unzipped extensions separated by directories (one directory per extension):
docker run -d -p 8080:8080 -v ${PWD}/exts_dir:/var/local/geoserver-exts/ oscarfonts/geoserver
You can use the build_exts_dir.sh
script together with a extensions configuration file to create your own extensions directory easily.
Warning: The
.jar
files contained in the extensions directory will be copied to theWEB-INF/lib
directory of the GeoServer installation. Make sure to include only.jar
files from trusted sources to avoid security risks.
It is also possible to configure the context path by providing a Catalina configuration directory:
docker run -d -p 8080:8080 -v ${PWD}/config_dir:/usr/local/tomcat/conf/Catalina/localhost oscarfonts/geoserver
See some examples.