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

Docker部署Kong时luarocks install返回非零代码132问题求助

Kong部署luarocks报错解决方案

错误根因

Illegal instruction (core dumped)报错和进程退出码132,本质是Alpine软件源内预编译的luarocks及相关依赖包,编译时启用了当前宿主CPU不支持的扩展指令集。你之前自行编译gdb的方案仅解决了镜像构建阶段的luarocks运行问题,但Kong镜像内置的Lua运行环境依赖库仍存在指令集不兼容问题,因此执行数据迁移步骤时仍会抛出相同错误。

解决方案

方案1:切换Debian系基础镜像(推荐)

Alpine使用的musl libc本身对低兼容性CPU的支持度弱于Debian系的glibc,直接替换基础镜像即可解决90%以上的同类问题,修改后的Dockerfile如下:

FROM kong:2.0.4

LABEL description="Debian + Kong 2.0.4 + kong-oidc plugin"

USER root
RUN apt update && apt install -y git unzip luarocks
RUN luarocks install --pin lua-resty-jwt 0.2.2-0
RUN luarocks install kong-oidc

USER kong

修改后直接重新构建镜像即可,原有部署逻辑无需调整。

方案2:Alpine镜像内源码编译luarocks

如果必须使用Alpine基础镜像,可放弃使用apk源的预编译luarocks包,手动从源码编译适配当前CPU指令集的版本,对应Dockerfile如下:

FROM kong:2.0.4-alpine

LABEL description="Alpine + Kong 2.0.4 + kong-oidc plugin"

USER root
RUN apk update && apk add git unzip gcc musl-dev lua5.1-dev make
# 源码编译适配当前CPU的luarocks
RUN wget https://luarocks.org/releases/luarocks-3.8.0.tar.gz && \
    tar zxpf luarocks-3.8.0.tar.gz && \
    cd luarocks-3.8.0 && \
    ./configure --prefix=/usr --lua-version=5.1 && \
    make && make install && \
    cd .. && rm -rf luarocks-3.8.0*
# 安装所需插件
RUN luarocks install --pin lua-resty-jwt 0.2.2-0
RUN luarocks install kong-oidc

USER kong

方案3:适配CPU架构

如果当前宿主为ARM64等非x86_64架构,需指定对应架构的Kong基础镜像,或在构建镜像时添加--platform参数指定与宿主匹配的架构,避免跨架构运行产生指令集兼容问题。

验证步骤

镜像构建完成后,先执行以下命令确认基础环境无报错,再执行数据迁移操作:

# 临时启动容器验证命令可用性
docker run --rm <构建的镜像名> luarocks --version
docker run --rm <构建的镜像名> kong version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:06:04