【问题标题】:Docker + Kong: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: connection refusedDocker + Kong:[PostgreSQL 错误] 无法检索 PostgreSQL server_version_num:连接被拒绝
【发布时间】:2019-12-02 15:59:12
【问题描述】:

我目前正在运行 Docker 19.03.5 并尝试复制 this article 的内容,但在第三步中出现以下错误:

第一步:

docker network create kong-net

第二:

docker run -d --name kong-database \
--network=kong-net \
-p 5555:5432 \
-e “POSTGRES_USER=kong” \
-e “POSTGRES_DB=kong” \
postgres:9.6

第三:

docker run --rm \
--network=kong-net \
-e “KONG_DATABASE=postgres” \
-e “KONG_PG_HOST=kong-database” \
kong:latest kong migrations up

在这第三步,如果我使用详细选项,我会看到以下错误:

2019/12/02 15:51:25 [verbose] Kong: 1.4.0
Error: 
/usr/local/share/lua/5.1/kong/cmd/migrations.lua:93: [PostgreSQL error] failed to retrieve 
PostgreSQL server_version_num: connection refused
stack traceback:
[C]: in function 'assert'
/usr/local/share/lua/5.1/kong/cmd/migrations.lua:93: in function 'cmd_exec'
/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:87>
[C]: in function 'xpcall'
/usr/local/share/lua/5.1/kong/cmd/init.lua:87: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:44>
/usr/local/bin/kong:9: in function 'file_gen'
init_worker_by_lua:48: in function <init_worker_by_lua:46>
[C]: in function 'xpcall'
init_worker_by_lua:55: in function <init_worker_by_lua:53>
2019/12/02 15:51:25 [verbose] no config file found at /etc/kong/kong.conf
2019/12/02 15:51:25 [verbose] no config file found at /etc/kong.conf
2019/12/02 15:51:25 [verbose] no config file, skip loading
2019/12/02 15:51:25 [verbose] prefix in use: /usr/local/kong

我的docker logs -f --tail 10 kong-database

PostgreSQL init process complete; ready for start up.

LOG:  database system was shut down at 2019-12-02 12:22:46 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

我正在运行 Ubuntu 18.04,并且没有其他网络或容器在运行。

【问题讨论】:

    标签: postgresql docker ubuntu-18.04 kong


    【解决方案1】:

    你指的文章有点过时了

    Kong

    参考https://hub.docker.com/_/kong

    Kong 文档https://docs.konghq.com/install/docker

    下面的说明应该可以工作

    创建 docker 网络

    docker network create kong-net
    

    启动 PostgreSQL 容器

    docker run -d --name kong-database \
    --network=kong-net \
    -p 5555:5432 \
    -e "POSTGRES_USER=kong" \
    -e "POSTGRES_DB=kong" \
    -e "POSTGRES_PASSWORD=kong" \
    postgres:12.2
    

    准备您的数据库

    docker run --rm \
    --network=kong-net \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=kong-database" \
    -e "KONG_PG_PASSWORD=kong" \
    kong:2.0.3 kong migrations bootstrap
    

    开始金刚

    docker run -d --name kong \
    --network=kong-net \
    --link kong-database:kong-database \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=kong-database" \
    -e "KONG_PG_PASSWORD=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
    

    【讨论】:

    • 文档仍在使用 postgres 9.6,这对我不起作用。我将它更改为 12.2,就像你在这里一样,并且有效。
    猜你喜欢
    • 1970-01-01
    • 2019-08-23
    • 2017-04-28
    • 2017-08-05
    • 1970-01-01
    • 2021-09-20
    • 2012-06-05
    • 2020-01-01
    • 2023-03-17
    相关资源
    最近更新 更多