Before, any file change in the repo would cause a reinstall of all
dependencies.
This commit splits the dockerfile in 2 phases:
First the files relevant for installation are added and all dependencies
are installed. Then the actual source code is added.
This way, rebuilding after sources have been changes takes a few seconds
rather than minutes.
Currently gunicorn is started in the entrypoint as subprocess. This
means that the entrypoint stays as process with PID 1 and eats the
signals that e.g. kubernetes sends to it. Thus when trying to update
the container, kubernetes must terminate the process ungracefully.
See e.g. this resources for a more detailed explanation:
https://hynek.me/articles/docker-signals/
This change replaces the entrypoint-shellscript with gunicorn, such that
signals are directly forwarded to gunicorn, where they are then handled.
One drawback of this approach is that lines after `exec gunicorn` are
not executed anymore. This currently affects `echo "END /entrypoint.sh"`.
A different approach would be to use `tini` to handle the system (see
link above). To do this, we would need to install tini.
* fix version output
* sort directory names
* unify tile tests
* fix typo in docs
* set OpenAPI info.version to pygeoapi version, add tiles output format
* align request/response headers, update not found tiles to return 404
* Add ogc api tiles implementation
* Add json response to tiles endpoint
* Return correct json payload
* Fix url generation
* Add vector tile layer with clickable items
* Fix typo
* Fix oafeat collection tiles link
* Add format to metadata link
* Fix almost all flake8 errors
* Fix metadata link
* Add routes to serving tiles
* Refactor tile implementation with an own module
* Add http client for mvt
* Fix visibility of tiles template
* Fix tiles in collection item page
* Change source to data coherently with stac provider
* Fix flake8 errors
* Fix test for conformance classes
* Fix flake8 errors
Fix flake8 errors
* Refactor to align with new configuration structure
* Fix MVT plugin name
* Add openapi tiles path and schemas
* Add ogc api tiles implementation
* Add json response to tiles endpoint
* Return correct json payload
* Fix url generation
* Add vector tile layer with clickable items
* Fix typo
* Fix oafeat collection tiles link
* Add format to metadata link
* Fix almost all flake8 errors
* Fix metadata link
* Add routes to serving tiles
* Refactor tile implementation with an own module
* Add http client for mvt
* Fix visibility of tiles template
* Fix tiles in collection item page
* Change source to data coherently with stac provider
* Fix flake8 errors
* Fix test for conformance classes
* Fix flake8 errors
Fix flake8 errors
* Refactor to align with new configuration structure
* Fix MVT plugin name
* Add openapi tiles path and schemas
* Fix flake errors
* Fix merge and tests
* Add test configuration and data for tiles
* Change mapbox vector tile provider name
* Fix provider inspection and filter
* Fix tiles rendering in collection page
* Add mimetype to the mvt provider
* Fix mimetype
* Rename functions accordingly to singular and plural forms
* Fix tiling schemes in tiles template
* Serve mvt through the pygeoapi route
* Refactor and add test for collection tiles
* Fix test for not being tiles
* Remove httpx dependency
* Fix missing comma
* Fix tests
* Fix flake8
* Add initial metadata implementation
* Fix route with preprocess
* Fix tiles template
Fix tiles template
* Complete tileset api and template
* Fix flake8
* Complete metadata with tilejson response
* Add support for local vector tiles
* Fix flake8
* Fix plugin tile object and provider name
* Add a todo comment
* testing alternate plugin setup, fix some HTML, add OpenAPI endpoint
* remove URI template
* add docs
* Fix failing test
* Fix flake8 error
Co-authored-by: Francesco Bartoli <francesco.bartoli@wfp.org>
Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
* moved id field to root in sample geojson provider files (geopython#499)
* modified geojson data provider to get id from root (geopython#499)
* updated geojson provider tests (geopython#499)
* updated position of id field (geopython#499)
* refactored code (geopython#499)
* refactored geojson provider (geopython#499)
* fixed geojson provider (geopython#499)
* moved id field to root in sample geojson provider files (geopython#499)
* modified geojson data provider to get id from root (geopython#499)
* updated geojson provider tests (geopython#499)
* updated position of id field (geopython#499)
* refactored code (geopython#499)
* refactored geojson provider (geopython#499)
* moved id field to root in sample geojson provider files (geopython#499)
* modified geojson data provider to get id from root (geopython#499)
* updated geojson provider tests (geopython#499)
Fix trailing slash in server url
Fix tag not declared in the root mapping key
Fix missing operationId
Add spectral command to travis for linting the openapi document