-
環境
ジェンキンスのインストール、Baiduのを見て、少しをインストールし、サーバーを準備します。
ドッキングウィンドウのインストール、Baiduのを見て、少しをインストールし、サーバーを準備します。 - ジェンキンス設定
- ジョブのMavenプロジェクトを作成します。
- ジョブのMavenプロジェクトを作成します。
-
ジェンキンス設定 - ソース
-
ジェンキンス設定 - フリップフロップの構築
-
ジェンキンス設定-環境を構築し
、集中GitLabから設定ファイルを保存するために、建物の前にDockerfileが含まれている最新の設定ファイルを引っ張るには、最新のファイル参照の後ろに構築を開始します。cd /data/httpd/release/b2b-configuration;git pull sleep 3; yes | cp -rfp /data/httpd/release/b2b-configuration/Spring-partner/QA/application.yml /home/jenkins/.jenkins/workspace/b2b-partner-test/src/main/resources/ yes | cp -rfp /data/httpd/release/b2b-configuration/Spring-partner/QA/Dockerfile /home/jenkins/.jenkins/workspace/b2b-partner-test/
- ジェンキンスの設定-操作後の建設やビル
のサーバーを設定しますドッカーへの最初の同期のjarパッケージとDockerfile、その後、対話型のコマンドを期待するドッキングウィンドウコンテナの構築のために、サーバーを設定しますドッカーにシェルスクリプトを送信し、起動し、アリの雲画像にプッシュ倉庫および他の操作。
ジェンキンスさんは、このサーバは、rsyncのスクリプトです:bashの/home/jenkins/docker-test/script/b2b-rsync.sh B2B-パートナーテストパラメータの後。
rsyncの同期スクリプト:#!/bin/bash IP=10.10.10.10 PASSWD=p@ssword1 echo -e "开始同步jar包..." rsync -vzrtopg --numeric-ids --progress --password-file=/etc/rsyncd.password6 /home/jenkins/.jenkins/workspace/$1/target/b2b-partner.jar root@$IP::$1 echo -e "开始同步Dockerfile..." rsync -vzrtopg --numeric-ids --progress --password-file=/etc/rsyncd.password6 /home/jenkins/.jenkins/workspace/$1/Dockerfile root@$IP::$1 expect /home/jenkins/docker-test/script/image_b2b.exp $IP $PASSWD $1
対話型のコマンドスクリプトを期待:/home/jenkins/docker-test/script/image_b2b.exp
#!/usr/bin/expect -f set ipaddress [lindex $argv 0] set passwd [lindex $argv 1] set jobname [lindex $argv 2] spawn ssh xiaoyu@$ipaddress; expect "password:"; send "$passwd\r"; expect "#" send "sudo nohup /data/docker/layout-script/docker-qa.sh $jobname >> /data/docker/logs/$jobname.log &\r"
注:上記のスクリプトの実行前に期待して、ユーザーが他のサーバの設定visudoをへのsshする必要があります追加:暁ALL =(ALL)NOPASSWDを:ALL、または他のユーザーが過去にsshをすることはできません。
-
ドッカー設定
ドッカーのDockerfileに同期ビュー、Mavenはこのディレクトリを同期させるのも良いのjarパッケージをビルドします。
ルート@ドッキングウィンドウ-QAのB2B-パートナーは -test]#LLの
61476の総容量
-rw-rを--- RW。1 19:46 1010 1010 62944090 B2B-7月-26はpartner.jarある
-rw-r--の。1 1010 1010 RW-237 7月26日午前10時00 Dockerfile
CAT DockerfileFROM registry.cn-hangzhou.aliyuncs.com/xmbaby-pre/ms-jdk8 EXPOSE 8081 MAINTAINER b2b-partner-test [email protected] ADD b2b-partner.jar /data/httpd/ WORKDIR /data/httpd/ ENTRYPOINT java -Xmx256m -Xss512k -jar b2b-partner.jar
キードッカーサーバー上で実行するスクリプトdocker-qa.sh
#!/bin/bash JOBMS=$1 VERSION=latest JOBREPO=/data/docker/$1 IMGREPO=xmbaby-test IMGNAME=$1 DTIME=`date +%Y-%m-%d" "%H":"%M":"%S` CONTAINER_NAME=b2b-partner-test if [ ! -d $JOBREPO ];then mkdir -p $JOBREPO scp [email protected]:~/.jenkins/workspace/$1/target/b2b-partner.jar $JOBREPO scp [email protected]:~/.jenkins/workspace/$1/Dockerfile $JOBREPO echo -e "\n[$JOBMS]" >> /etc/rsyncd.conf echo "path=/data/docker/$JOBMS/" >> /etc/rsyncd.conf echo "comment = update ignore errors read only = no list = no hosts allow = 10.10.10.10/255.255.255.0 auth users = root uid = root gid = root secrets file = /etc/rsyncd.secrets" >> /etc/rsyncd.conf else echo -e "\n时间$DTIME,开始构建job-docker镜像" fi cd $JOBREPO docker build -t ms-b2b/$JOBMS . if [ $? -ne 0 ];then echo -e "时间$DTIME,$JOBMS 镜像构建失败,请检查dockerfile !" exit else echo -e "时间$DTIME,开始删除之前job-Docker容器." docker rm $CONTAINER_NAME -f echo -e "时间$DTIME,开始运行job-Docker容器." docker run --name $CONTAINER_NAME -v $JOBREPO:$JOBREPO -d -p 8081:8081 ms-b2b/$JOBMS sleep 5 echo -e "时间$DTIME,$CONTAINER_NAME容器创建完成.开始推送到阿里镜像仓库中..." IMAGEID=`docker images |grep "ms-b2b/$JOBMS" |awk '{print $3}'` echo "Image镜像ID:$IMAGEID" CONTAINERID=`docker images |grep "ms-b2b/$JOBMS" |awk '{print $1}'` echo "Container容器:$CONTAINERID" docker login --username=username --password=PASSWD registry.cn-hangzhou.aliyuncs.com docker tag $IMAGEID registry.cn-hangzhou.aliyuncs.com/$IMGREPO/$IMGNAME:$VERSION docker push registry.cn-hangzhou.aliyuncs.com/$IMGREPO/$IMGNAME:$VERSION fi
- ジェンキンスの建設が
構築
ビルドログを表示するには、ジェンキンスコンソールを