基於Docker構建帶有Rsync的Jenkins


1.編輯Dockerfile文件

FROM jenkins

USER root

ADD sources.list /etc/apt/sources.list

RUN apt-get update && apt-get install -y rsync

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ADD rsync.password /etc/rsync.password

RUN chmod 600 /etc/rsync.password && chown jenkins:jenkins /etc/rsync.password

ADD timezone /etc/timezone

USER jenkins

  

注:sources.list 為國內的debian源。

rsync.password 為rsync遠程同步的密碼文件。

timezone 為時區文件否則,jenkins會差8個小時。內容Asia/Shanghai。

2.構建鏡像

docker build -t jenkins:jenkins-chao .

3.構建Docker容器

docker run --name myjenkins -uroot -p 8081:8080 -p 50000:50000 -v /srv/jenkins_home:/var/jenkins_home -d jenkins:jenkins-chao

 注:-u 表示使用root權限。

 

4.需要同步到遠程服務器上開啟rsync deamo

vi /etc/rsyncd.conf

#Rsync server
 uid = rsync
 gid = rsync
 use chroot = no
 maxconnections = 2000
 timeout = 600
 pid file = /var/run/rsyncd.pid
 lock file = /var/run/rsync.lock
 log file = /var/run/rsyncd.log
 ignore errors
 read only = false
 list = false
 hosts allow = 10.211.55.0/24
 hosts deny = 0.0.0.0/32
 auth users = rsync_backup
 secrets file = /etc/rsync.password
 [backup]
 comment = www by oldboy 2016.09.23
 path = /backup

5.創建rsync用戶

useradd rsync -s /sbin/nologin -M

6.創建備份目錄及修改權限

mkdir /backup
chown -R rsync /backup
echo "rsync_backup:oldboy" >/etc/rsync.password
chmod 600 /etc/rsync.password

7.啟動rsync

rsync --daemon

Jenkins的構建項目腳本

#切換到項目目錄
JobName='xiangmu'
JobDir='/var/jenkins_home/www'
cd $JobDir
#如果有項目目錄則刪除
if [ -d $JobName ]:
then
    rm -rf $JobName
fi
#克隆遠程項目鏈接
git clone ssh://git@***/"$JobName".git
cd $JobName

#刪除git目錄
rm -rf .git
#項目初始化
rsync -az $JobDir"/xiangmu-dev/dev/" $JobDir"/xiangmu"
#目錄設置權限
chmod -R 777 $JobDir"/xiangmu/backend/runtime" && chmod -R 777 $JobDir"/xiangmu/backend/web/assets"
#遠程copy
cd $JobDir"/"$JobName
#同步
rsync -avz --delete $JobDir"/"$JobName --exclude-from=$JobDir"/xiangmu-dev/xiangmu_exclude.list" rsync_backup@*.*.*.*::backup --password-file=/etc/rsync.password

rsync啟動命令

#/usr/bin/rsync –daemon  

注:jenkins腳本為yii2的自動化部署。如果jenkins為root,最好rsync同步時也為root

 


免責聲明!

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



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