TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)
  • Sqoop编译

  • Ranger编译

  • Phoenix编译

  • Dolphinscheduler编译

  • Doris编译

  • Cloudbeaver编译

  • Atlas编译

  • Superset编译

  • Celeborn编译

  • Ozone编译

  • Impala编译

    • version-4.4.1

      • Impala_4.4.1 编译
      • [O] Impala 版本适配改造(一)
      • [O] Impala 版本适配改造(二)
      • [O] Impala 版本适配改造(三)
        • 背景与目的
        • 主要改造点与工程思路
          • 1. Docker 检测方法更健壮
          • 2. 可维护性与可扩展性提升
      • [B] Impala 版本适配改造(一)
      • [B] Impala 版本适配改造(二)
      • [B] Impala 版本适配改造(三)
      • [B] Impala 版本适配改造(四)
  • Trino编译

  • Paimon编译

  • Hudi编译

  • 组件编译-Bigtop-增强
  • Impala编译
  • version-4.4.1
JaneTTR
2025-06-22
目录

[O] Impala 版本适配改造(三)

# 背景与目的

随着大数据平台 CI/CD 自动化水平提升,Impala 及其依赖经常运行于各类容器环境(如 Docker)。 准确检测当前运行环境是否为 Docker,对于后续路径、权限、依赖初始化等行为判定极为关键。如果判断失误,容易导致构建脚本出现意外行为或权限问题。

提示

容器化部署已成为主流,脚本级 Docker 环境自适应能力直接影响整体平台的可移植性与工程健壮性。

# 主要改造点与工程思路

# 1. Docker 检测方法更健壮

  • 旧写法: 只依赖于 grep docker /proc/1/cgroup,在某些主机、精简容器或自定义 cgroup 场景下可能检测不到,误判概率高。

  • 新写法: 采用多方法并联检测:

    • 检查 /proc/1/cgroup 是否包含 docker 关键词
    • 检查根目录下是否有 /.dockerenv 文件(很多容器平台会自动注入)
    • 额外检测 /proc/self/cgroup,防止部分环境下主 cgroup 路径不可读

极大提升容器内环境检测的准确率,无惧平台或 Docker 版本变动多重判定。

# 2. 可维护性与可扩展性提升

  • 新增所有判定方法均可单独扩展,后续如需兼容 Podman、LXC 或其他容器运行时,只需补充判定分支,无需大幅重构主逻辑。
  • 检测逻辑内聚且易读,便于团队其他同事理解和维护。

笔记

脚本安全和健壮性的提升,让 CI/CD、开发测试、生产运维三端都能用同一套构建体系,减少环境分裂和调试歧义。

完整 diff 如下:

Subject: [PATCH] fixed: docker checked
---
Index: bin/bootstrap_system.sh
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/bin/bootstrap_system.sh b/bin/bootstrap_system.sh
--- a/bin/bootstrap_system.sh	(revision fd57ec623193968cba765305448ea07cd7e97e20)
+++ b/bin/bootstrap_system.sh	(date 1749625395791)
@@ -128,9 +128,12 @@
     exit 1
   fi
 fi
-if grep docker /proc/1/cgroup; then
-  IN_DOCKER=true
-  echo "Identified we are running inside of Docker."
+# 多方法检测Docker环境
+if grep -q docker /proc/1/cgroup || [ -f /.dockerenv ] || \
+   { [[ -f /proc/self/cgroup ]] && grep -q docker /proc/self/cgroup; }
+then
+    IN_DOCKER=true
+    echo "Identified we are running inside of Docker."
 fi

 # Helper function to execute following command only on Ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#Impala#Docker#构建脚本#兼容性
[O] Impala 版本适配改造(二)
[B] Impala 版本适配改造(一)

← [O] Impala 版本适配改造(二) [B] Impala 版本适配改造(一)→

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式