docker搭建jenkins並且集成mvn,新手必踩的坑!


本次主要是來記錄下項目中的jenkins的搭建的整體過程,其中也沒少走一些彎路,希望可以供大家參考!

1.首先准備好一台初始化好的虛擬機,初始化環境(設置network,關閉防火牆,關閉selinux,配置阿里yum源,同步時間,修改主機名和綁定hosts,安裝docker和docker-compose,安裝一些基礎命令工具:lsof,yum,netstat,wget 等,重啟虛擬機)

2.安裝docker和docker-compose

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce-17.06.0.ce-1.el7.centos.x86_64 -y

systemctl enable docker

systemctl  start docker

cat > /etc/docker/daemon.json <<EOF

{

     "registry-mirrors": ["https://ui5lsypg.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

 

sudo curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

 

3.准備掛載目錄

由於環境需要,針對docker運行的容器(jenkinsci/blueocean)進入后權限不足的問題,很多時候在容器內裝某些命令,某些軟件就很困難,這個時候就需要把需要的命令或者軟件提前在宿主機內准備好,以卷的形式掛載,這樣的話,就可以實現在容器內能夠調用到這些命令。例如本篇將掛載的tree,maven,jenkins_home,以及profile等,后續如果還需要的話可以在此基礎上稍作修改即可。

3.1 准備/usr/local/tree-1.8.0

可以直接去百度搜索rpm包,下載rpm,解壓后進入目錄后makeinstall即可,可用過which tree 查看是否安裝成功

3.2  掛載/home/jenkins到容器內/var/jenkins_home \會報錯,主要原因在於權限問題

 

 需要修改下目錄權限, 因為當映射本地數據卷時,/home/jenkins目錄的擁有者為root用戶,而容器中jenkins user的uid為1000

執行如下命令即可:

虛擬機需要作出權限修改:chown -R 1000:1000 /home/jenkins

3.3 下載apache-maven-3.6.3 ,解壓到/home/jenkins下

3.4  拷貝容器內/etc/profile的文件到/home下,后期好多軟件需要用到這個文件

編輯后內容如下:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '
umask 022

for script in /etc/profile.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
MAVEN_HOME=/home/maven
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

TREE_HOME=/usr/local/tree-1.8.0
export TREE_HOME
export PATH=$PATH:$TREE_HOME/

4. 第三步准備好后,就可以啟動容器,查看容器日志即可看到初始密碼

docker run -d -p 8080:8080 -p 50000:50000  --restart=always --privileged=true  -v /usr/local/tree-1.8.0:/usr/local/tree-1.8.0  -v /home/jenkins:/var/jenkins_home -v /home/jenkins/apache-maven-3.6.3:/home/maven -v /var/run/docker.sock:/var/run/docker.sock  -v /home/profile:/etc/profile  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai  --name jenkins --network=host jenkinsci/blueocean

5. 等待插件安裝

 6.  插件安裝完成后進入主界面

 7. 修改以下幾處:

 

 

 7.1 修改jenkins登陸密碼:

 7.2 添加插件:Maven Integration pluginGitLab PluginPublish Over SSH

如果在線下載插件比較慢,可以提前下載導入插件

 7.3 系統配置添加全局環境變量,否則jenkins在執行任務的時候會報錯 command not found:maven 和 command not found:tree 

    添加要jenkins操作的主機列表

 7.4  全局工具配置添加我們自己定義的maven

 7.5 憑據里面添加憑據(admin和root)ps:系統憑據用到的密碼是jenkins拉取gitlab密碼需要用到的密碼,此處需要填寫gitlab服務器的密碼或者key

 7.6 gitlab服務器添加jenkins服務器的公鑰 ps:此處jenkins服務是docker運行的,所以一定一定不要填寫虛擬機的公鑰,需要進入jenkins容器,到/var/jenkins_home/.ssh,ssh-keygen生成密鑰對,然后拷貝公鑰到gitlab服務器即可,需要注意要先ssh gitlabIP,輸入一次yes.

 

 

 8.  新建自由風格的項目

 

 

 

 

 9. 項目創建完成即可運行,可以到調測端口查看日志輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM