The goal of this project is to provide an easy way to stand up several useful GIS services for folks to learn & explore with.
You will need the following installed:
Once Docker is up and running, do the following:
$ git clone [email protected]:lostmapper/gis-dockerized.git
$ cd gis-dockerized
$ docker compose upThis will download and run the services defined in docker-compose.yml.
You can shut down the containers using Control-C.
If you are running Docker on an Apple Silicon Mac (M1, M2, etc.) you will need to use the following command:
$ DOCKER_DEFAULT_PLATFORM=linux/amd64 docker compose up| Service | Name | URL | Username | Password | Data Location |
|---|---|---|---|---|---|
| GeoServer | geoserver |
http://localhost:8080/geoserver/web/ | gis |
password |
data/geoserver |
| MapStore | mapstore |
http://localhost:8081/mapstore/ | admin |
admin |
PostGIS |
| pgAdmin4 | pgadmin |
http://localhost:5050/ | [email protected] |
password |
data/pgadmin |
| PostGIS | postgis |
N/A | gis |
password |
data/postgis |
| Solr | solr |
http://localhost:8983/solr/ | N/A | N/A | data/solr |
Note: Wherever possible a service's data is stored on the host machine so it persists between runs.
GeoServer is an open source server for sharing geospatial data.
Once the service is running you can access GeoServer at http://localhost:8080/geoserver/web/
The REST API is available at http://localhost:8080/geoserver/rest/
The credentials for logging in as the GeoServer admin are:
- Username:
gis - Password:
password
GeoServers's data is stored in data/geoserver.
Demo data is enabled by default to facilitate learning & using the service right out of the box.
Configuration options for the GeoServer Docker image can be found at https://github.com/geoserver/docker.
MapStore is a highly modular Open Source WebGIS framework to create, manage and securely share maps and mashups.
Once the service is running you can access MapStore at http://localhost:8081/mapstore/
The credentials for logging in as the MapStore admin are:
- Username:
admin - Password:
admin
MapStore's data is stored in the PostGIS database describe below.
pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
Once the service is running you can access pgAdmin at localhost on port 5050.
The credentials for logging in area:
- Username:
[email protected] - Password:
password
pgAdmin data is stored in data/pgadmin.
Configuration options for the pgAdmin Docker image can be found at https://www.pgadmin.org/docs/pgadmin4/9.9/container_deployment.html
PostGIS extends the capabilities of the PostgreSQL relational database by adding support for storing, indexing, and querying geospatial data.
Once the service is running you can access PostGIS at localhost on port 5432.
To connect with psql, use the following:
psql --host=localhost --user=gisThe credentials for logging in are:
- Username:
gis - Password:
password
PostGIS data is stored in data/postgis.
Configuration options for the PostGIS Docker image can be found at https://github.com/postgis/docker-postgis
Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene
Once the service is running you can access Solr at http://localhost:8983/solr/.
Solr data is stored in data/solr.
The Solr services is configured with a core named blacklight-core to be used with an instance of GeoBlacklight
The blacklight-core configuration in the solr_conf directory is a copy of the solr/conf directory in the 4.4.0 release of GeoBlacklight.
To run the containers in the background, use the following command:
$ docker compose up --detachTo follow/tail the container logs in this mode, use the following command:
$ docker compose logs --followTo shut down the container running in the background, use the following command:
$ docker compose downIf you only need to run a single service provided by this project you can specify its name after the up command. For example, to just run Solr use the following command:
$ docker compose up solrThis can also be combined with the --detach option per above.
MapStore requires PostGIS to persist its data. To run just those two services, use the following command:
$ docker compose up mapstore postgis