Sign inSign up

oscarfonts/geoserver

By oscarfonts

Updated about 1 month ago

Deploy GeoServer on top of official tomcat image

Image
API management
Content management system
Monitoring & observability
34

100K+

oscarfonts/geoserver repository overview

docker-geoserver

Dockerized GeoServer.

Note: Starting with GeoServer 3, this Docker image will no longer be maintained. We recommend switching to the official GeoServer Docker build. If you need professional support, feel free to contact us.

Features

  • Built on top of Docker's official tomcat image, specifically tomcat:9-jre17.
  • 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.
  • Custom geoserver deployment path.
  • docker health check.

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
  • On build time, set the GEOSERVER_PATH arg to change the geoserver base path. It defaults to /geoserver.
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
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:

  • GEOSERVER_CORS_ALLOWED_ORIGINS (cors.allowed.origins)
  • GEOSERVER_CORS_ALLOWED_METHODS (cors.allowed.methods)
  • GEOSERVER_CORS_ALLOWED_HEADERS (cors.allowed.headers)
  • GEOSERVER_CORS_URL_PATTERN (filter-mapping url-pattern)

See Tomcat documentation for more info.

Tag summary

Content type

Image

Digest

sha256:063b9fa08

Size

379.8 MB

Last updated

about 1 month ago

docker pull oscarfonts/geoserver