kong/kong-build-toolsKong构建工具是一套用于开发、打包和发布Kong的Docker工具集,提供了从Kong源码开发到最终发行版发布的完整工作流支持。
使用前需确保环境已安装以下依赖:
make setup_tests自动安装)该工具需与Kong源码仓库配合使用(默认假定为同级目录),步骤如下:
bashcd ~ git clone ***:Kong/kong.git # 克隆Kong源码 git clone ***:Kong/kong-build-tools.git # 克隆构建工具 cd kong-build-tools make development # 启动开发环境
开发环境中,Kong源码挂载于/src目录,所有日志输出至/src/servroot/*。
构建工具包含kong-plugin子模块,可作为插件开发模板使用:
docker-compose.yml中的KONG_PLUGINS配置启用插件默认构建Ubuntu Xenial平台的Kong deb包(假定Kong源码位于同级目录),步骤如下:
bashcd ~ git clone ***:Kong/kong.git git clone ***:Kong/kong-build-tools.git cd kong-build-tools make package-kong # 执行打包 ls output/ # 查看输出 kong-0.0.0.xenial.all.deb # 生成的包文件
所有可用环境变量可在Makefile顶部查看,常用变量如下:
bashKONG_SOURCE_LOCATION=/src/projects/custom-kong-location # 自定义Kong源码路径 KONG_PACKAGE_NAME=custom-kong-name # 自定义包名称 KONG_VERSION=v1.0.0 # 自定义版本号 RESTY_IMAGE_BASE=ubuntu|centos|rhel|debian|alpine|amazonlinux # 基础镜像系统 RESTY_IMAGE_TAG=trusty|xenial|bionic|6|7|jessie|stretch|latest # 基础镜像标签 PACKAGE_TYPE=deb|rpm|apk # 包类型
RedHat平台额外需导出:
bashexport REDHAT_USERNAME=rhuser # RedHat账户 export REDHAT_PASSWORD=password # RedHat密码
可将构建的Kong资产打包为Docker镜像,步骤如下:
bashexport KONG_TEST_CONTAINER_NAME=kong:testing # 自定义镜像名称:标签 make build_test_container # 构建容器
执行测试需确保已安装Docker、Minikube和Helm(Linux环境可通过make setup_tests自动安装):
bashmake test # 执行测试
Kong功能测试基于Tavern框架,需满足前提条件:
make package-kong)make setup-tests)执行功能测试:
bashmake test
功能测试可通过环境变量自定义配置,默认值如下:
bashTEST_ADMIN_PROTOCOL?=http:// # Admin API协议 TEST_ADMIN_PORT?=8001 # Admin API端口 TEST_HOST?=localhost # 测试主机 TEST_ADMIN_URI?=$(TEST_ADMIN_PROTOCOL)$(TEST_HOST):$(TEST_ADMIN_PORT) # Admin API地址 TEST_PROXY_PROTOCOL?=http:// # 代理协议 TEST_PROXY_PORT?=8000 # 代理端口 TEST_PROXY_URI?=$(TEST_PROXY_PROTOCOL)$(TEST_HOST):$(TEST_PROXY_PORT) # 代理地址
在满足功能测试前提条件的基础上,开发测试用例:
bashmake test # 执行现有测试 make develop_tests # 启动测试开发环境 py.test test_your_test.tavern.yaml # 运行自定义测试用例(可能会有HTTPS和结构相关警告)
发布功能需基于已构建的发行版包(位于output目录),步骤如下:
bashexport BINTRAY_USR=user # Bintray用户名 export BINTRAY_KEY=key # Bintray密钥 export RESTY_IMAGE_BASE=ubuntu # 基础镜像系统(参考构建发行版) export RESTY_IMAGE_TAG=xenial # 基础镜像标签(参考构建发行版) export KONG_PACKAGE_NAME=kong # 包名称 export KONG_VERSION=v1.2.3 # 版本号 make release-kong # 执行发布
必填变量:
BINTRAY_USR: Bintray用户名BINTRAY_KEY: Bintray密钥可选变量(有默认值):
RESTY_IMAGE_BASE: 基础镜像系统(默认ubuntu)RESTY_IMAGE_TAG: 基础镜像标签(默认xenial)KONG_PACKAGE_NAME: 包名称(默认kong)KONG_VERSION: 版本号(默认从源码获取)仓库相关变量(未指定时按以下规则默认):
| 基础系统 | REPOSITORY_TYPE | REPOSITORY_NAME | REPOSITORY_OS_NAME |
|---|---|---|---|
| ubuntu | deb | ${KONG_PACKAGE_NAME}-deb | ubuntu |
| rhel | deb | ${KONG_PACKAGE_NAME}-deb | rhel |
| centos | rpm | ${KONG_PACKAGE_NAME}-rpm | centos |
| alpine | generic | ${KONG_PACKAGE_NAME}-generic | alpine-tar |
发布路径格式:bintray.com/kong/${REPOSITORY_NAME}/${REPOSITORY_OS_NAME}/${KONG_VERSION}/${KONG_PACKAGE_NAME}-${KONG_VERSION}.${OUTPUT_FILE_SUFFIX}
默认发布路径示例:bintray.com/kong/kong-deb/ubuntu/0.0.0/kong-0.0.0.xenial.all.deb

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务