自定义tcp-log plugin包含了request body 和 response body。 http://tech.jiu-shu.com/Micro-Services/kong-quickstart-plugindev

插件打包

进入目录运行命令打包安装并测试。 (构建docker的宿主机需要安装kong)

luarocks make
luarocks pack kong-plugin-tcp-log-body 0.1.0
luarocks install kong-plugin-tcp-log-body-0.1.0-1.all.rock  # 本地测试用

构建镜像

构建镜像前确定 luarocks pack 步骤已经完成

docker build -t jiu-shu/kong:2.0.3 .

运行测试

参考 https://docs.konghq.com/install/docker/, 这里采取声明式作为示例。

  • 创建网络https://docs.konghq.com/install/docker/
  • 创建容器卷docker volume create kong-vol
  • 配置kong.ym, 路径: /var/lib/docker/volumes/kong-vol/_data/kong.yml
  • 运行;注意设置plugins: -e "KONG_PLUGINS=bundled,tcp-log-body"
docker run -d --name kong \
     --network=kong-net \
     -v "kong-vol:/usr/local/kong/declarative" \
     -e "KONG_DATABASE=off" \
     -e "KONG_PLUGINS=bundled,tcp-log-body" \
     -e "KONG_DECLARATIVE_CONFIG=/usr/local/kong/declarative/kong.yml" \
     -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 127.0.0.1:8001:8001 \
     -p 127.0.0.1:8444:8444 \
     jiu-shu/kong:2.0.3

推送镜像

docker tag jiu-shu/kong:2.0.3  registry.cn-qingdao.aliyuncs.com/jiu-shu/kong:2.0.3
docker tag jiu-shu/kong:2.0.3  registry.cn-qingdao.aliyuncs.com/jiu-shu/kong:latest
docker login --username=choelea@gmail.com registry.cn-qingdao.aliyuncs.com
docker push registry.cn-qingdao.aliyuncs.com/jiu-shu/kong:2.0.3
docker push registry.cn-qingdao.aliyuncs.com/jiu-shu/kong:latest