Code Monkey home page Code Monkey logo

docker-geoserver's Introduction

docker-geoserver

Dockerized GeoServer.

Features

  • Built on top of Docker's official tomcat image. Using tomcat:9-jre17 as base for versions 2.23.1 and above, and tomcat:9-jdk11 for versions below 2.23.1.
  • 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:

Security patches for older versions:

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

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:

  • 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.

docker-geoserver's People

Contributors

ahuarte47 avatar fpsampayo avatar oscarfonts avatar victorzinho avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.