a1472e5ac5
incorrect pygeoapi image URL
115 lines
2.9 KiB
Markdown
115 lines
2.9 KiB
Markdown
# pygeoapi Docker HOWTO
|
|
|
|
Docker Images `geopython/pygeoapi:latest` and versions are
|
|
[available from DockerHub](https://hub.docker.com/r/geopython/pygeoapi).
|
|
|
|
Each Docker Image contains a default configuration [default.config.yml](default.config.yml)
|
|
with the project's test data and WFS3 datasets.
|
|
|
|
You can override this default config via Docker Volume mapping or by extending the Docker Image
|
|
and copying in your config.
|
|
See an [example for the geoapi demo server](https://github.com/geopython/demo.pygeoapi.io/tree/master/services/pygeoapi)
|
|
for the latter method.
|
|
https://github.com/geopython/demo.pygeoapi.io/tree/master/services
|
|
Depending on your config you may need specific backends to be available.
|
|
|
|
## Running - Basics
|
|
|
|
By default this Image will start a `pygeoapi` Docker Container
|
|
using `gunicorn` on internal port 80.
|
|
|
|
To run with default built-in config and data:
|
|
|
|
```
|
|
docker run -p 5000:80 -it geopython/pygeoapi run
|
|
# or simply
|
|
docker run -p 5000:80 -it geopython/pygeoapi
|
|
|
|
# then browse to http://localhost:5000/
|
|
```
|
|
|
|
You can also run all unit tests to verify:
|
|
|
|
```
|
|
docker run -it geopython/pygeoapi test
|
|
```
|
|
|
|
## Running - Overriding the default config
|
|
|
|
Normally you would override the [default.config.yml](default.config.yml) with your own `pygeoapi` config.
|
|
This can be effected best via Docker Volume Mapping.
|
|
|
|
For example if your config is in `my.config.yml`:
|
|
|
|
```
|
|
docker run -p 5000:80 -v $(pwd)/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi
|
|
```
|
|
|
|
But better/cleaner is to use `docker-compose`. Something like:
|
|
|
|
```
|
|
version: "3"
|
|
|
|
services:
|
|
|
|
pygeoapi:
|
|
image: geopython/pygeoapi:latest
|
|
|
|
volumes:
|
|
- ./my.config.yml:/pygeoapi/local.config.yml
|
|
|
|
```
|
|
|
|
Or you can create a `Dockerfile` extending the base Image and `COPY` in your config:
|
|
|
|
```
|
|
FROM geopython/pygeoapi:latest
|
|
|
|
COPY ./my.config.yml /pygeoapi/local.config.yml
|
|
|
|
```
|
|
|
|
See how the demo server is setup this way at
|
|
https://github.com/geopython/demo.pygeoapi.io/tree/master/services/pygeoapi_master
|
|
|
|
## Running - Running on a sub-path
|
|
|
|
By default the `pygeoapi` Docker Image will run from the `root` path `/`.
|
|
If you need to run from a sub-path and have all internal URLs correct
|
|
you need to set `SCRIPT_NAME` environment variable.
|
|
|
|
For example to run with `my.config.yml` on http://localhost:5000/mypygeoapi:
|
|
|
|
```
|
|
docker run -p 5000:80 -e SCRIPT_NAME='/mypygeoapi' -v $(pwd)/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi
|
|
# browse to http://localhost:5000/mypygeoapi
|
|
```
|
|
|
|
Or within a `docker-compose.yml` full example:
|
|
|
|
```
|
|
version: "3"
|
|
|
|
services:
|
|
|
|
pygeoapi:
|
|
image: geopython/pygeoapi:latest
|
|
|
|
volumes:
|
|
- ./my.config.yml:/pygeoapi/local.config.yml
|
|
|
|
ports:
|
|
- "5000:80"
|
|
|
|
environment:
|
|
- SCRIPT_NAME=/pygeoapi
|
|
|
|
|
|
```
|
|
|
|
See [pygeoapi demo service](https://github.com/geopython/demo.pygeoapi.io/tree/master/services/pygeoapi)
|
|
for an full example.
|
|
|
|
|
|
|