You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker声明式配置的Kong中安装自定义插件?

在Docker+声明式Kong环境中安装自定义插件的方案

核心结论:不能仅通过kong.yml完成自定义插件的安装。声明式配置(YAML清单)的作用是启用已被Kong加载的插件,而自定义插件的文件加载必须先通过kong.conf配置让Kong的Lua解释器找到插件文件,再结合Docker文件挂载实现,具体操作步骤如下:

1. 挂载自定义插件文件到Docker容器

Kong的插件需要放置在容器内的标准Lua插件目录才能被识别,你需要把自定义log-test插件的handler.lua和schema.lua放到本地一个单独目录(比如./custom-plugins/log-test/),然后修改kong_install.bat的Docker启动命令,添加目录挂载参数:

docker run -d ^
  -v %cd%\custom-plugins/log-test:/usr/local/share/lua/5.1/kong/plugins/log-test ^
  -v %cd%\kong.yml:/usr/local/kong/declarative/kong.yml ^
  -v %cd%\kong.conf:/usr/local/kong/conf/kong.conf ^
  -p 8000:8000 ^
  -p 8443:8443 ^
  kong:latest kong start -c /usr/local/kong/conf/kong.conf -e

注:Windows环境下用%cd%表示当前目录,确保挂载路径和本地文件结构匹配,容器内的目标路径是Kong默认扫描插件的目录。

2. 配置kong.conf加载插件

在kong.conf中添加两项关键配置,让Kong识别并启用自定义插件:

# 将自定义插件加入启用列表,bundled表示保留官方内置插件
plugins = bundled,log-test

# 若挂载的是非标准路径,需添加到Lua包路径;标准路径可省略此配置
lua_package_path = ./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;;

3. 在kong.yml中声明式启用插件

当插件被Kong成功加载后,就可以通过kong.yml将插件绑定到服务、路由或全局范围,示例配置如下:

_format_version: "3.0"
services:
  - name: demo-service
    url: http://your-backend-service
    routes:
      - name: demo-route
        paths:
          - /demo
    plugins:
      - name: log-test
        config:
          # 这里填写插件的配置参数,需与schema.lua中定义的字段匹配
          log_target: /var/log/kong/log-test.log
          log_level: warn

验证插件加载状态

启动容器后,可通过Kong Admin API验证插件是否成功启用:

curl http://localhost:8001/plugins/enabled

返回结果中若包含log-test,则说明插件加载成功。

内容的提问来源于stack exchange,提问作者mikyll98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:29:59