RHEL下Docker构建阶段安装luarocks报错及二进制安装方法
报错原因
- 核心原因:当前使用的RHEL系列基础镜像(RHEL/CentOS/Rocky Linux/AlmaLinux等)默认配置的yum软件源未收录
luarocks安装包,执行安装命令时无法检索到对应资源,抛出No package luarocks available错误后进程终止,退出码为1。 - 日志中提示的系统未注册红帽授权服务属于非阻断告警,和本次luarocks安装失败无直接关联,不影响第三方软件的正常安装部署。
二进制编译安装luarocks的Dockerfile实现
通过源码编译生成二进制文件的方式部署luarocks无需依赖第三方yum源,流程如下:
- 提前下载对应稳定版本的luarocks源码压缩包,放到Docker构建上下文目录中,也可以上传到内部文件服务供构建时拉取
- 在Dockerfile中替换原有luarocks安装指令,先将源码包复制到镜像内,再执行编译安装,参考配置如下:
# 将提前下载好的luarocks源码包复制到镜像临时目录 COPY luarocks-*.tar.gz /tmp/ RUN cd /tmp && \ yum makecache && \ # 安装lua运行环境、编译工具链、解压工具 yum install -y lua lua-devel gcc make tar && \ # 解压源码包 tar zxf luarocks-*.tar.gz && \ cd luarocks-* && \ # 配置编译参数、执行编译安装 ./configure --prefix=/usr/local/luarocks && \ make && make install && \ # 建立软链接,配置全局命令可直接调用 ln -s /usr/local/luarocks/bin/luarocks /usr/local/bin/luarocks && \ # 清理安装临时文件、yum缓存,减小镜像体积 cd / && rm -rf /tmp/luarocks-* && \ yum clean all && rm -rf /var/cache/yum/*
可以增加
RUN luarocks --version构建步骤做校验,命令正常返回版本信息即代表安装成功。
内容的提问来源于stack exchange,提问作者Amin Ba
相关产品推荐
相关产品推荐

