Docker環(huán)境搭建Jenkins在構建任務時控制臺日志出現(xiàn)中文亂碼的問題
一、問題描述:
在Linux環(huán)境Centos操作系統(tǒng)下,通過Docker下載Jenkins鏡像后創(chuàng)建了容器,并且通過服務器IP+端口訪問Jenkins地址,進行相關的配置,然后創(chuàng)建任務job來構建跑java+selenium自動化測試腳本,目前構建Success,唯一不足之處是打印的日志出現(xiàn)就了亂碼,如下圖:
(備注:執(zhí)行機就是jenkins本身,同一臺機器)
二、排查Jenkins設置
Jenkins系統(tǒng)設置查看全局屬性中語言部分
2.Jenkins詳細信息(瀏覽器Jenkins地址后面加上/systemInfo)
三、代碼log日志編碼方式
1.打印的日志確認是否是utf-8,已確認是
四、 Linux服務器語言信息
1.查看宿主機語言配置,輸入命令:locale -a
2.查看/.vimrc
此處沒敢改,因為不確會影響范圍,只是在CSDN找的文章
這塊不是很明白,網上給出的答案是:
https://blog.csdn.net/u010189459/article/details/38338735
大概的意思是在vimrc里面encoding可同時做這幾項設置:
set encoding=utf-8 set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8
五、終極排查
既然Jenkins系統(tǒng)設置、宿主機的語言都已經排查,現(xiàn)在開始排查容器
1.進入到Jenkins容器里面
docker exec -it 容器ID /bin/bash
查看語言
然后再輸入
export LC_ALL="C.UTF-8"
在/etc/bash.bashrc里面末尾寫入,然后source /etc/bash.bashrc
然后發(fā)現(xiàn)沒有vim,算了不折騰了。
lc_all實際上就是給上面的所有變量賦值,效果一樣,不過試試也無妨,一般來說沒有,docker本身就有完整的操作系統(tǒng),跟宿主機沒關系。
2.進入到Chrome瀏覽器容器里面
set LC_ALL="C.UTF-8"
3.然后Jenkins系統(tǒng)設置修改全局屬性,將之前的LANG = zh_CN .UTF-8改成LANG = C.UTF-8 原因是:目前市場上做服務器基本被centos和debian占據吧,centos依靠redhat,debian自源,centos源于紅帽,各種補丁以及服務更完善些,centos做服務器也較多吧,自動化部門我沒猜錯的話jenkins所在的宿主機用的是debian系統(tǒng)不是centos,因為debian中l(wèi)ocale是支持zh_CN.UTF-8,centos支持C.UTF-8
最后重啟下jenkins服務(jenkins地址后加上/restart),然后啟動任務查看jenkins控制臺的日志!
后記,可能是容器里面需要設置下語言,jenkins系統(tǒng)設置全局屬性語言LANG = C.UTF-8有關系。
總結
以上所述是小編給大家介紹的Docker環(huán)境搭建Jenkins在構建任務時控制臺日志出現(xiàn)中文亂碼的問題,希望對大家有所幫助!
相關文章
云原生教程之使用Docker部署webssh工具sshwifty
Sshwifty是一個開源的WebSSH?&?WebTelnet客戶端,下面這篇文章主要給大家介紹了關于云原生教程之使用Docker部署webssh工具sshwifty的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-03-03Docker實現(xiàn)同Ip網段聯(lián)通的實現(xiàn)
這篇文章主要介紹了Docker實現(xiàn)同Ip網段聯(lián)通的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12