docker-geoserver
Dockerized GeoServer.
Features
- Built on top of Docker's official tomcat image.
- Taken care of JVM Options, to avoid PermGen space issues &c.
- Separate GEOSERVER_DATA_DIR location (on /var/local/geoserver).
- CORS ready.
- Automatic installation of Native JAI and Image IO for better performance.
- Configurable extensions.
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
Trusted builds
Active versions with automated builds available on docker registry:
Other experimental (not automated build):
-
oracle
. Uses wnameless/oracle-xe-11g, needs ojdbc7.jar and setting up a database. See the run commands. -
h2-vector
. Plays nice with oscarfonts/h2:geodb, and includes sample scripts for docker-compose and systemd.
Running
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 /path/to/local/data_dir:/var/local/geoserver localhost --name=MyGeoServerInstance oscarfonts/geoserver
Configure extensions
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 /path/to/local/exts_dir:/var/local/geoserver-exts/ localhost --name=MyGeoServerInstance 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 extensions to avoid security risks.
Configure path
It is also possible to configure the context path by providing a Catalina configuration directory:
docker run -d -p 8080:8080 -v /path/to/local/data_dir:/var/local/geoserver -v /path/to/local/conf_dir:/usr/local/tomcat/conf/Catalina/localhost --name=MyGeoServerInstance oscarfonts/geoserver
See some examples.
Logs
See the tomcat logs while running:
docker logs -f MyGeoServerInstance