docker - Kong Docker 与非 Docker Postgres
问题描述
我目前在 Debian 上使用 Kong(本机安装)。我想将 Kong 移动到 docker 中,但数据库使用现有的 Postgres(非 docker),并且还使用现有 /etc/kong/kong.conf 中的配置。
如何做到这一点?在docker 安装指南中,只有使用 docker Postgres 的说明。
谢谢
解决方案
您需要配置以下环境变量来告诉 Kong 您的 Postgres 数据库在哪里以及如何连接到它:
- KONG_DATABASE
- KONG_PG_HOST
- KONG_PG_PORT
- KONG_PG_USER
- KONG_PG_PASSWORD
- KONG_PG_DATABASE
每个变量的描述可以在postgres 设置文档中找到。
-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 配置文档kong.conf
,您可以使用环境变量覆盖文件中的每个变量:
当从配置文件中加载属性时,Kong 也会查找同名的环境变量。这允许您通过环境变量完全配置 Kong,例如,这对于基于容器的基础架构非常方便。
要使用环境变量覆盖设置,请使用设置名称声明环境变量,前缀为
KONG_
大写。
推荐阅读
- ios - 将 UIImage 转换为单色 1 位 bmp 图像 Swift 5.1
- python-3.x - 将 flask.request 与 PyTest 一起使用的单元测试方法
- r - r中的字符串匹配
- uproot - 如何快速获得像 root_numpy root2array() 输出一样的 uproot.iterate() 输出
- python - 如何编写 Python 代码来支持 Windows 和 Linux?
- android - 滚动到特定视图的顶部会导致片段中的 NPE?
- r - 更改 x 轴标签 R
- javascript - 从 json 文件中附加了带有 `src` 的 <IMG> 标签,在 html 中显示为文本而不显示照片
- python - python生成器作为表达式
- sql - 使用 COUNT(DISTINCT ...) 为查询建立索引和管理表