Kong Docker与非Docker Postgres

时间:2018-12-28 00:41:43

标签: docker kong

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

如何实现?在docker installation guide中,只有使用Docker Postgres的说明。

谢谢

1 个答案:

答案 0 :(得分:2)

您需要配置以下环境变量以告知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_开头并大写。