我有一个在docker容器中运行的nodejs API,我想使用Kong作为API-Gateway。 Kong将在另一个docker容器中运行。当我使用docker-compose启动API容器和Kong容器时,Kong容器会抛出一个错误说
kong | stack traceback: kong | [C]: in function 'assert' kong | /usr/local/share/lua/5.1/kong/init.lua:160: in function 'init' kong | init_by_lua:3: in main chunk kong | 2018/02/07 11:14:17 [warn] postgres database 'kong' is missing migration: (response-transformer) 2016-05-04-160000_resp_trans_schema_changes kong | nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:160: [postgres error] the current database schema does not match this version of Kong. Please run `kong migrations up` to update/initialize the database schema. Be aware that Kong migrations should only run from a single node, and that nodes running migrations concurrently will conflict with each other and might corrupt your database schema!
docker-compose file:
version: '3.1' services: couchdb: image: couchdb container_name: e-db ports: - 5984:5984 environment: COUCHDB_USER: admin COUCHDB_PASSWORD: admin api: image: e-api container_name: e-api entrypoint: ./docker-entrypoint.sh couchdb 5984 build: . command: npm run dev depends_on: - couchdb ports: - 8080:8080 kong-db: image: postgres:alpine container_name: kong-db restart: on-failure ports: - 5432 environment: POSTGRES_USER: kong POSTGRES_DB: kong kong: image: kong:0.12.1-alpine container_name: kong restart: on-failure depends_on: - kong-db ports: - 8000:8000 - 8443:8443 - 8001:8001 environment: KONG_PG_HOST: kong-db KONG_DATABASE: postgres command: kong migrations up kong-ui: image: pgbi/kong-dashboard container_name: kong-ui restart: on-failure ports: - 8089:8080 depends_on: - kong
所以,在收到错误之后,我添加了"命令:kong migrations up"到服务。这次它进行迁移。但是在迁移之后,kong容器停止了,我无法重新启动它。
我错过了什么吗?
答案 0 :(得分:0)
kong:0.12.1仅支持postgresql 9.5+作为数据存储区。所以请注意你将kong与postgresql的兼容版本链接起来。
如果您将多个kongs指向同一个数据库和同一个用户,那么请注意kong模式匹配。