【问题标题】:Kong Docker with Non-Docker PostgresKong Docker 与非 Docker Postgres
【发布时间】:2018-12-28 00:41:43
【问题描述】:

我目前在 Debian 上使用 Kong(本机安装)。 我想将 Kong 移动到 docker 中,但数据库使用现有的 Postgres(非 docker),并且还使用现有 /etc/kong/kong.conf 中的配置。

如何做到这一点?在docker installation guide 中,只有使用 docker Postgres 的说明。

谢谢

【问题讨论】:

    标签: docker kong


    【解决方案1】:

    您需要配置以下环境变量来告诉 Kong 您的 Postgres 数据库在哪里以及如何连接到它:

    - KONG_DATABASE
    - KONG_PG_HOST
    - KONG_PG_PORT
    - KONG_PG_USER
    - KONG_PG_PASSWORD
    - KONG_PG_DATABASE
    

    每个变量的描述可以在postgres settings documentation找到。

    您使用-e 选项将环境变量传递给容器。来自 docker 安装指南的修改 docker run 命令示例:

     $ docker run -d --name kong \
       --network=kong-net \
       -e "KONG_DATABASE=postgres" \
       -e "KONG_PG_HOST=127.0.0.1" \
       -e "KONG_PG_PORT=5432" \
       -e "KONG_PG_USER=kong" \
       -e "KONG_PG_PASSWORD=kong" \
       -e "KONG_PG_DATABASE=kong" \
       -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
       -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
       -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
       -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
       -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
       -p 8000:8000 \
       -p 8443:8443 \
       -p 8001:8001 \
       -p 8444:8444 \
       kong:latest
    

    根据Kong configuration documentation,您可以使用环境变量覆盖kong.conf 文件中的每个变量:

    当从配置文件中加载属性时,Kong 也会寻找同名的环境变量。这允许您通过环境变量完全配置 Kong,例如,这对于基于容器的基础架构非常方便。

    要使用环境变量覆盖设置,请使用设置名称声明一个环境变量,前缀为 KONG_ 并大写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2017-08-06
      相关资源
      最近更新 更多