目錄
- 一、問題描述:
- 二、排查Jenkins設(shè)置
- 三、代碼log日志編碼方式
- 四、 Linux服務(wù)器語言信息
- 五、終極排查
一、問題描述:
在Linux環(huán)境Centos操作系統(tǒng)下,通過Docker下載Jenkins鏡像后創(chuàng)建了容器,并且通過服務(wù)器IP+端口訪問Jenkins地址,進(jìn)行相關(guān)的配置,然后創(chuàng)建任務(wù)job來構(gòu)建跑java+selenium自動(dòng)化測(cè)試腳本,目前構(gòu)建Success,唯一不足之處是打印的日志出現(xiàn)就了亂碼,如下圖:
(備注:執(zhí)行機(jī)就是jenkins本身,同一臺(tái)機(jī)器)
二、排查Jenkins設(shè)置
Jenkins系統(tǒng)設(shè)置查看全局屬性中語言部分
2.Jenkins詳細(xì)信息(瀏覽器Jenkins地址后面加上/systemInfo)
三、代碼log日志編碼方式
1.打印的日志確認(rèn)是否是utf-8,已確認(rèn)是
四、 Linux服務(wù)器語言信息
1.查看宿主機(jī)語言配置,輸入命令:locale -a
2.查看/.vimrc
此處沒敢改,因?yàn)椴淮_會(huì)影響范圍,只是在CSDN找的文章
這塊不是很明白,網(wǎng)上給出的答案是:
https://blog.csdn.net/u010189459/article/details/38338735
大概的意思是在vimrc里面encoding可同時(shí)做這幾項(xiàng)設(shè)置:
set encoding=utf-8 set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8
五、終極排查
既然Jenkins系統(tǒng)設(shè)置、宿主機(jī)的語言都已經(jīng)排查,現(xiàn)在開始排查容器
1.進(jìn)入到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實(shí)際上就是給上面的所有變量賦值,效果一樣,不過試試也無妨,一般來說沒有,docker本身就有完整的操作系統(tǒng),跟宿主機(jī)沒關(guān)系。
2.進(jìn)入到Chrome瀏覽器容器里面
set LC_ALL="C.UTF-8"
3.然后Jenkins系統(tǒng)設(shè)置修改全局屬性,將之前的LANG = zh_CN .UTF-8改成LANG = C.UTF-8 原因是:目前市場(chǎng)上做服務(wù)器基本被centos和debian占據(jù)吧,centos依靠redhat,debian自源,centos源于紅帽,各種補(bǔ)丁以及服務(wù)更完善些,centos做服務(wù)器也較多吧,自動(dòng)化部門我沒猜錯(cuò)的話jenkins所在的宿主機(jī)用的是debian系統(tǒng)不是centos,因?yàn)閐ebian中l(wèi)ocale是支持zh_CN.UTF-8,centos支持C.UTF-8
最后重啟下jenkins服務(wù)(jenkins地址后加上/restart),然后啟動(dòng)任務(wù)查看jenkins控制臺(tái)的日志!
后記,可能是容器里面需要設(shè)置下語言,jenkins系統(tǒng)設(shè)置全局屬性語言LANG = C.UTF-8有關(guān)系。
總結(jié)
以上所述是小編給大家介紹的Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問題,希望對(duì)大家有所幫助!