A GeoServer Docker Image with predefined extensions and CORS support.
GeoServer is an open source server for sharing geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards.
By running
docker run -p 8080:8080 meggsimum/geoserver:2.19.3you'll get a cleaned standard GeoServer (Version 2.19.3), which can be accessed by http://localhost:8080/geoserver
USE_CORS=1(0/1) Default is0USE_WPS=1(0/1) Default is0USE_VECTOR_TILES=1(0/1) Default is0APP_PATH_PREFIX="my#deploy#path#"(any string compliant to Tomcat context path naming )GEOSERVER_ADMIN_USER(String - supported since 2.19.x) Default isadminGEOSERVER_ADMIN_PASSWORD(String - supported since 2.19.x) Default isgeoserverUPDATE_CREDENTIALS(0/1) If the credentials shall be updated on startup. Default is0
For detailed information check the sections below.
The geoserver_data directory can be mounted as volume on the host system.
docker run -p 8080:8080 -v $(pwd)/geoserver_data:/opt/geoserver_data meggsimum/geoserverThis Docker Image allows to run GeoServer with CORS (Cross-Origin Resource Sharing) support.
In order to enable CORS for your GeoServer container the environment variable
USE_CORS can be used.
By running
docker run -e USE_CORS=1 -p 8080:8080 meggsimum/geoserveryou'll get a GeoServer with CORS enabled.
This Docker Image comes with several extensions which are bundled in:
- WPS
 - Vector Tiles
 
These extensions can be activated by the following environment variables:
USE_WPS=1USE_VECTOR_TILES=1
By running
docker run -e USE_WPS=1 -e USE_VECTOR_TILES=1 -p 8080:8080 meggsimum/geoserveryou'll get a GeoServer with installed and activated WPS and Vector Tiles extension.
This Docker Image allows to deploy GeoServer under a given path instead of always being hosted under /geoserver.
The path is defined in the environment variable APP_PATH_PREFIX in
the form foo#bar#, which leads the application being
hosted under /foo/bar/geoserver/. If the env var is not set the
GeoServer will be hosted under /geoserver as usual.
By running
docker run -e APP_PATH_PREFIX="foo#bar#" -p 8080:8080 meggsimum/geoserveryou'll get the GeoServer deployed at http://localhost:8080/foo/bar/geoserver/.
In order to have individual admin credentials in your running container the environment variables GEOSERVER_ADMIN_USER and GEOSERVER_ADMIN_PASSWORD can be set:
docker run -e GEOSERVER_ADMIN_USER=peter -e GEOSERVER_ADMIN_PASSWORD=abcd -p 8080:8080 meggsimum/geoserverSetting UPDATE_CREDENTIALS to 0 does not update the credentials on startup. This is useful if an existing volume shall be mounted that already has credentials set up.
docker run -e UPDATE_CREDENTIALS=0 -v $(pwd)/geoserver_data:/opt/geoserver_data -p 8080:8080 meggsimum/geoserver:latestcd /path/to/this/repository/
docker build -t {YOUR_TAG} .This GeoServer Docker Image was heavily inspired by the one here: https://github.com/terrestris/docker-geoserver/ of the terrestris organization. Thank you!
Also a big thank you to the fabulous GeoServer project and its maintainers / contributors. GeoServer is excellent, you rock!