0

我有一个在 docker 容器中运行的 nodejs API,我想使用 Kong 作为 API-Gateway。Kong 将在另一个 docker 容器中运行。当我使用 docker-compose 启动 API 容器和 Kong 容器时,Kong 容器会抛出错误消息;

香港 | 堆栈回溯:
香港 | [C]:在函数“断言”中
香港 | /usr/local/share/lua/5.1/kong/init.lua:160:在函数'init'中
香港 | init_by_lua:3: 在主块中
香港 | 2018/02/07 11:14:17 [警告] postgres 数据库 'kong' 缺少迁移:(response-transformer) 2016-05-04-160000_resp_trans_schema_changes
香港 | nginx:[错误] init_by_lua 错误:/usr/local/share/lua/5.1/kong/init.lua:160:[postgres 错误] 当前数据库模式与此版本的 Kong 不匹配。请运行 `kong migrations up` 来更新/初始化数据库模式。请注意,Kong 迁移应仅从单个节点运行,并且同时运行迁移的节点将相互冲突,并可能破坏您的数据库架构!

码头工人撰写文件:

版本:'3.1'

服务:
  沙发数据库:
    图片:沙发数据库
    容器名称:e-db
    端口:
      - 5984:5984
    环境:
      COUCHDB_USER:管理员
      COUCHDB_PASSWORD:管理员

  接口:
    图片:e-api
    容器名称:e-api
    入口点:./docker-entrypoint.sh couchdb 5984
    建造: 。
    命令:npm run dev
    取决于:
      -沙发数据库
    端口:
      - 8080:8080

  kong-db:
    图片:postgres:高山
    容器名称:kong-db
    重启:失败
    端口:
      - 5432
    环境:
      POSTGRES_USER: 孔
      POSTGRES_DB:香港

  孔:
    图片:kong:0.12.1-alpine
    容器名称:kong
    重启:失败
    取决于:
      -kong-db
    端口:
      - 8000:8000
      - 8443:8443
      - 8001:8001
    环境:
      KONG_PG_HOST: kong-db
      KONG_DATABASE:postgres
    命令:kong 向上迁移

  孔义:
    图片:pgbi/kong-dashboard
    容器名称:kong-ui
    重启:失败
    端口:
      - 8089:8080
    取决于:
      - 香港

因此,在收到该错误后,我将“命令:kong 迁移”添加到 kong 服务。这次它进行了迁移。但迁移后,kong 容器停止,我无法重新启动它。

我错过了什么吗?

4

1 回答 1

0

kong:0.12.1 仅支持 postgresql 9.5+ 作为数据存储。因此,请确保将 kong 与 postgresql 的兼容版本链接。

如果您将多个 kong 指向同一个数据库和同一个用户,请确保 kong 模式匹配。

于 2018-02-14T04:49:47.003 回答