oscarfonts / docker-geoserver

MIT License
87 stars 50 forks source link

docker-geoserver

Dockerized GeoServer.

Important deprecation notice

Old GeoServer versions affected by a severe security vulnerability have been removed from this repo to prevent damage. Please update to most recent version where possible, or at least use a secure version:

If you are concerned about security and want to keep GeoServer in good shape, please consider supporting the key shift towards 3.0 release.

Features

Trusted builds

Latest versions with automated builds available on docker registry:

Unsupported builds

Other experimental dockerfiles (not automated build):

Think of them more as recipes or documentation rather than production-ready builds :)

Running

Get the image:

docker pull oscarfonts/geoserver

Custom GEOSERVER_DATA_DIR

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

Custom base path

Custom UID and GID

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

Custom 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 ${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 the WEB-INF/lib directory of the GeoServer installation. Make sure to include only .jar files from trusted sources to avoid security risks.

Custom configuration directory

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.

CORS

CORS is configured automatically in the servlet web.xml filters. If you have another component in front that already takes care of it you can disable it with the environment variable -e "GEOSERVER_CORS_ENABLED=false".

It is also possible to fine tune it for specific origins, methods, etc. with the following variables:

See Tomcat documentation for more info.