Docker

pygeoapi提供了一个 Docker 在上提供的图像 geopython Docker Hub . 其他Docker示例可以在 pygeoapi GitHub repository ,每个都有示例配置、测试数据、部署场景和提供程序后端。

这个 pygeoapi demo server 从各种服务,也运行Docker useful examples .

注解

Docker和 Docker Compose 需要在您的系统上运行pygeoapi映像。

基础知识

官方的pygeoapi Docker映像将在内部端口80上使用Gunicorn启动pygeoapi Docker容器。

要使用默认的内置配置和数据运行:

docker run -p 5000:80 -it geopython/pygeoapi run
# or simply
docker run -p 5000:80 -it geopython/pygeoapi

…然后浏览到http://localhost:5000美元

也可以运行所有单元测试来验证:

docker run -it geopython/pygeoapi test

重写默认配置

通常你会覆盖 default.config.yml 用你自己的 pygeoapi 配置。这可以通过Docker卷映射来完成。

例如,如果您的配置 my.config.yml

docker run -p 5000:80 -v $(pwd)/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi

对于更简洁的方法,可以使用 docker-compose 具体如下:

version: "3"
services:
  pygeoapi:
    image: geopython/pygeoapi:latest
    volumes:
      - ./my.config.yml:/pygeoapi/local.config.yml

或者你可以创建一个 Dockerfile 扩展基本映像和 copy 在您的配置中:

FROM geopython/pygeoapi:latest
COPY ./my.config.yml /pygeoapi/local.config.yml

可在中找到相应的示例https://github.com/geopython/demo.pygeoapi.io/tree/master/services/pygeoapi_master

在子路径上部署

默认情况下 pygeoapi Docker image will run from the root path (/). If you need to run from a sub-path and have all internal URLs properly configured, you can set the `` SCRIPT_NAME``环境变量。

例如与 my.config.ymlhttp://localhost:5000/mypygeoapi

docker run -p 5000:80 -e SCRIPT_NAME='/mypygeoapi' -v $(pwd)/my.config.yml:/pygeoapi/local.config.yml -it geopython/pygeoapi

…然后浏览到 http://localhost:5000/mypygeoapi

下面是对应的 docker-compose 方法:

version: "3"
services:
  pygeoapi:
    image: geopython/pygeoapi:latest
    volumes:
      - ./my.config.yml:/pygeoapi/local.config.yml
    ports:
      - "5000:80"
    environment:
     - SCRIPT_NAME=/pygeoapi

可在中找到相应的示例https://github.com/geopython/demo.pygeoapi.io/tree/master/services/pygeoapi_master

总结

Docker是一种简单且可复制的部署系统的方法。

注解

欢迎并鼓励采用其他方法;见 贡献 有关如何帮助和改进文档的更多信息