skywalking-agent-docker鏡像

FROM centos:7.9.2009
USER root

# 定義 Arthas 目錄環境變量
ENV ARTHAS_HOME=/opt/arthas

# 更改 YUM 源并清理緩存
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \
rm -rf /etc/yum.repos.d/* && \
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo && \
yum clean all && yum makecache fast && yum update -y && \
yum install -y \
gcc gcc-c++ kernel-devel yum-utils device-mapper-persistent-data lvm2 \
tcpdump vim git wget net-tools libpcap libpcap-devel automake make \
pam-devel openldap-devel cyrus-sasl-devel openssl-devel telnet rsync \
bzip2 iptables lsof curl su-exec expect net-tools \
gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel \
libpng-devel openssl-devel bison flex \
glibc-devel libstdc++ && \
yum clean all && rm -rf /var/cache/yum/*

# 設置時區
RUN rm -f /etc/localtime && \
ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
echo "TZ=Asia/Shanghai" >> /etc/profile

# 安裝 JDK 17
COPY jdk-17.0.14_linux-x64_bin.rpm /home/
RUN rpm -ivh --nodeps /home/jdk-17.0.14_linux-x64_bin.rpm && \
rm -f /home/jdk-17.0.14_linux-x64_bin.rpm && \
echo "export JAVA_HOME=/usr/java/jdk-17" >> /etc/profile && \
echo "export CLASSPATH=.:\$JAVA_HOME/lib" >> /etc/profile && \
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile && \
source /etc/profile

COPY arthas-bin /opt/arthas/
ENV ARTHAS_HOME=/opt/arthas
# 賦予可執行權限
RUN chmod +x $ARTHAS_HOME/*

# 安裝 Arthas(修正版本和鏈接)
#RUN mkdir -p $ARTHAS_HOME && wget -O $ARTHAS_HOME/arthas-boot.jar https://repo1.maven.org/maven2/com/aliyun/arthas/arthas-boot/3.7.8/arthas-boot-3.7.8.jar && echo "alias arthas='java -jar $ARTHAS_HOME/arthas-boot.jar'" >> /etc/profile

# 處理 SkyWalking Agent

# 處理 SkyWalking Agent(修復目錄不存在問題)
RUN mkdir -p /usr/skywalking ?# 提前創建上級目錄
ADD apache-skywalking-java-agent-9.4.0.tgz /tmp/
# 驗證解壓后的目錄名稱,若正確則繼續移動
RUN if [ -d "/tmp/skywalking-agent" ]; then \
mv /tmp/skywalking-agent /usr/skywalking/agent && \
ls /usr/skywalking/agent/ && \
mv /usr/skywalking/agent/optional-plugins/* /usr/skywalking/agent/plugins/ && \
mv /usr/skywalking/agent/optional-reporter-plugins/* /usr/skywalking/agent/plugins/ && \
rm -rf /tmp/*; \
else \
echo "Error: /tmp/skywalking-agent not found"; \
exit 1; \
fi


# 系統配置(最終修復 exit code:1 問題)
RUN set -ex && \
# 安裝必要組件:SELinux 工具、iptables 基礎命令
yum install -y selinux-policy-targeted policycoreutils iptables && \
# 修改 SELinux 配置文件為 disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && \
# 優化 SELinux 狀態判斷語法(添加括號確保優先級)
if (sestatus 2>/dev/null || true) | grep -q "SELinux status:.*enabled"; then \
# 容錯處理:即使 setenforce 失敗(如 SELinux 已禁用),也不終止步驟
setenforce 0 || true; \
else \
echo "SELinux is already disabled, skipping setenforce"; \
fi && \
# 確保 iptables 命令存在后清理規則,容錯執行失敗
if [ -x "$(command -v iptables)" ]; then \
iptables -F && iptables -X || true; \
else \
echo "iptables command not found, skipping cleanup"; \
fi && \
# 清理 yum 緩存
yum clean all

# 環境變量
ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai \
MYPATH=/ \
JAVA_HOME=/usr/java/jdk-17 \
PATH=$PATH:/usr/java/jdk-17/bin

# 處理入口腳本
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

WORKDIR $MYPATH

EXPOSE 22 8080 8888 8563 3568 6123 6122 6124 8081 443

MAINTAINER app

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88278.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫開發運維的集成:彌合開發與運維之間的鴻溝

在傳統的軟件開發工作流程中,數據庫變更往往是事后才考慮的問題。應用程序代碼遵循定義明確的開發運維實踐,包括版本控制、自動測試和持續部署,而數據庫變更則經常是由數據庫管理員手動執行的高風險操作。這種脫節造成了瓶頸,帶來…

PiscTrace應用:從 YOLO-Pose 到深蹲與引體向上計數:實時健身動作分析與實現

隨著健身行業的發展,越來越多的智能應用涌現,用于幫助健身者更好地記錄和分析運動情況。特別是在體能訓練中,俯臥撐和引體向上是兩個非常常見的動作,它們通常用來鍛煉上半身力量和耐力。為了使訓練更加科學和高效,實時…

【unity】webCanvas.enabled = false;和webCanvas.gameObject.SetActive(false);的優缺點比較

在 Unity 中,webCanvas.gameObject.SetActive(false) 和 webCanvas.enabled false 是兩種不同的隱藏 UI 的方式,它們的核心區別在于作用范圍和對組件狀態的影響。理解這些差異能幫助你避免初始化失敗、性能問題和邏輯錯誤。 1核心區別 gameObject.SetAc…

深入探索 pnpm:高效磁盤利用與靈活的包管理解決方案

引言 在現代 JavaScript 開發中,依賴管理效率直接影響開發體驗。傳統工具如 npm 和 yarn 在大型項目中常面臨磁盤冗余和性能瓶頸。pnpm(Performant npm)通過創新的硬鏈接和符號鏈接機制,解決了這些痛點。本文將深入解析 pnpm 的核…

Hive MetaStore的實現和優化

在大數據領域,數據管理與存儲至關重要,Hive MetaStore(HMS)作為 Hive 數據倉庫的核心組件,承擔著元數據管理的關鍵職責。隨著數據規模不斷膨脹,其性能與穩定性面臨挑戰。本文將深入剖析 HMS 的實現機制&…

一文讀懂動態規劃:多種經典問題和思路

一、動態規劃算法的思想與核心概念框架 1. 動態規劃的基本思想 動態規劃(Dynamic Programming, DP)是一種通過將復雜問題分解為重疊子問題,并利用子問題的解來高效解決原問題的方法。其核心思想是避免重復計算,通過存儲中間結果&a…

阿幸課堂隨機點名

代碼功能 這個是一個HTML網頁端,簡單來說就是可以雙擊之后運行進行點名。 當然,不局限于課堂點名 代碼功能 Excel 導入增強: 增加了列選擇器,可以指定從哪一列讀取學生姓名 增加了起始行選擇器,可以跳過標題行或其…

LeetCode 560: 和為K的子數組

題目描述給定一個整數數組 nums 和一個整數 k,請統計并返回該數組中和為 k 的連續子數組的個數。示例 1:輸入:nums [1,1,1], k 2 輸出:2示例 2:輸入:nums [1,2,3], k 3 輸出:2提示&#xff…

微軟官方C++構建工具:歷史演變、核心組件與現代實踐指南

引言:C構建工具的戰略意義 在Windows生態系統中,??微軟C構建工具??(Microsoft C Build Tools)構成了數百萬開發者和應用程序的技術基石。從早期的MS-DOS命令行工具到如今支持??跨平臺開發??的現代化工具鏈,微…

探索Cocos_CoilTheRope:一款創新的游戲引擎擴展項目

探索Cocos_CoilTheRope:一款創新的游戲引擎擴展項目 去發現同類優質開源項目:https://gitcode.com/ 是一個基于Cocos2d-x游戲引擎的擴展庫,旨在為開發者提供一種簡便的方法來實現繩子纏繞和物理交互效果。該項目由DreamLXW開發并維護,為游戲…

爬蟲-正則表達式

在線正則表達式測試OSCHINA.NET在線工具,ostools為開發設計人員提供在線工具,提供jsbin在線 CSS、JS 調試,在線 Java API文檔,在線 PHP API文檔,在線 Node.js API文檔,Less CSS編譯器,MarkDown編譯器等其他在線工具https://tool.oschina.net/…

【BTC】數據結構

目錄 那比特幣區塊鏈的組織形式到底是以鏈表的形式,還是樹的形式呢? 區塊頭和區塊體與默克爾樹的關系 默克爾證明詳解 區塊鏈和鏈表最大的區別就是區塊鏈用哈希指針代替了普通指針。 鏈表的指針就是指向一個結構體在內存中的地址,而哈希指…

飛算 JavaAI:讓 Java 開發效率飆升的智能助手,日常開發全場景應用指南

飛算 JavaAI:讓 Java 開發效率飆升的智能助手 ,日常開發全場景應用指南 在 Java 開發的日常工作中,開發者常常面臨各類重復性勞動與邏輯復雜度挑戰。飛算 JavaAI 作為專注于 Java 領域的智能開發助手,能夠覆蓋從代碼生成到項目維護…

8.2 文檔預處理模塊(二)

一、從0開始:簡易RAG實現 在構建更復雜的 RAG 架構之前,我們先從最基礎的版本入手。整個流程可以分為以下幾個關鍵步驟: 1.數據導入:加載并預處理原始文本數據,為后續處理做好準備。 2.文本分塊:將長文本…

【系統與工具】Linux——Linux簡介、安裝、簡單使用

計算機概論與Linux簡介 計算機概論Linux介紹與版本 Linux的規劃與安裝 Linux與硬件平臺密切相關規劃硬件與Linux安裝 主機規劃與磁盤分區安裝CentOS、多重引導 簡單使用 幫助手冊文本編輯器關機 0. Linux介紹與版本 操作系統(Linux):高效…

從視頻數據到數字孿生:如何構建虛擬與現實的橋梁?

概述 視頻數據與三維場景融合渲染技術通過將動態視頻與靜態三維模型結合,利用GPU加速、WebGL渲染、數字孿生等技術,實現虛擬與現實的交互式融合。該技術廣泛應用于智慧城市、工業監控、虛擬現實、游戲特效等領域,能夠提升場景的直觀性和用戶沉…

【筆記】開源 AI Agent 項目 V1 版本 [新版] 部署 日志

kortix-ai/suna at v1 一、最新版本號 V1 二、部署截圖 本地開發環境仍然依賴于 Poetry 環境&#xff1a; &#xff08;Python>3.11,<3.13&#xff09; 創建本地 Poetry 虛擬環境 Python 多版本環境治理理念驅動的系統架構設計&#xff1a;三維治理、四級隔離、五項自…

NumPy-梯度與導數計算詳解

NumPy-梯度與導數計算詳解一、梯度與導數的基本概念1. 導數的定義2. 梯度的定義二、NumPy中的梯度計算函數&#xff1a;np.gradient()1. 函數語法2. 一維數組的梯度計算3. 多維數組的梯度計算三、基于梯度的導數近似方法1. 前向差分2. 中心差分四、實際應用場景1. 函數優化2. 數…

Redis架構安全

先學習&#xff1a;Redis架構簡介-CSDN博客 Redis壓測 Redis一般應用于高并發的場景&#xff0c;所以一定要對Redis的性能做壓測。 Redis提供了壓測腳本redis-benchmark&#xff0c;可以對Redis進行快速的基準測試。 # 20個線程&#xff0c;100W個請求&#xff0c;測試redi…

自動化Trae Apollo參數解釋的批量獲取

自動化Trae Apollo參數解釋的批量獲取一、背景介紹二、設計思路三、操作步驟1. 環境準備2. 獲取界面坐標3. 定位關鍵元素4. 執行自動化查詢5. 獲取結果四、完整代碼五、擴展應用一、背景介紹 在自動駕駛開發中&#xff0c;百度Apollo平臺提供了大量參數用于調整系統行為。Trae…