Sign inSign up

oscarfonts/geoserver

By oscarfonts

•Updated about 2 months 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 2 months ago

docker pull oscarfonts/geoserver