1. 程式人生 > >asp.netcore+jenkins+docker+svn+centos7.2 持續整合,每天凌晨獲取最新程式碼打包釋出

asp.netcore+jenkins+docker+svn+centos7.2 持續整合,每天凌晨獲取最新程式碼打包釋出

執行環境:

  1. centos7.2伺服器或則虛擬機器
  2. 可以是騰訊雲也可以是內網伺服器,(如果是內網伺服器需要用frp做內網穿透,這樣才可以通過外網訪問該伺服器)
  3. svnserver 來託管程式碼

一.安裝jenkins執行環境

1. 檢視yum庫中的Java安裝包

2.yum -y list java*

3.選擇一個適合的版本進行安裝我們這裡選擇的是1.8.0的版本進行演示

yum -y install java-1.8.0-openjdk*

4.檢視jdk是否安裝成功

java -version

二.安裝JenKins

1.我們採用wget方式安裝jenkins

yum -y install wget

2.用如下程式碼檢視wget是否安裝成功

rpm -qa|grep "wget"

上圖表示安裝成功

3.參考:https://www.imooc.com/article/43528  按步驟完成安裝

4.使用以下命令安裝jenkins

$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm –import https://jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install jenkins

5.修改jenkins預設埠。預設是8080。當被佔用時我們改成其他埠以便使用,我們這裡手動改為8090

$ vim /etc/sysconfig/jenkins 

找到JENKINS_PORT="8090" 可以改成未被佔用的埠號

 6.配置許可權

為了不因為許可權出現各種問題,這裡直接使用root

修改使用者為root

$ vim /etc/sysconfig/jenkins

# 修改配置
$JENKINS_USER="root"

# 修改目錄許可權

$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/cache/jenkins
$ 
chown -R root:root /var/log/jenkins 重啟 $ service jenkins restart $ ps -ef | grep jenkins

7.啟動Jenkins

$ systemctl start jenkins
驗證啟動狀態
$ systemctl status jenkins

如圖所以啟動成功

8.jenkins執行成功後然後訪問Jenkins http://ip:8090

cat /var/lib/jenkins/secrets/initialAdminPassword
檢視jenkins密碼,然後輸入到密碼框
然後一直下一步安裝就可以

9.然後進入到如下頁面

10.建立一個自由風格的任務

 

11.原始碼管理配置

 

12.編寫dockerfile

# 編譯Docker映象
FROM microsoft/aspnetcore-build as build-env
MAINTAINER xiaoyukeji
WORKDIR /source
COPY ./JenkinsTest /source

WORKDIR /source/JenkinsTest

RUN dotnet restore --verbosity q

RUN dotnet publish -c Release -o /source/publish

# PC端映象
FROM microsoft/aspnetcore
WORKDIR /app
copy --from=build-env /source/publish ./

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

EXPOSE 5001/tcp

ENTRYPOINT ["dotnet", "JenkinsTest.dll"]

13.編寫shell指令碼

echo 打包映象
docker build --force-rm=true --rm -f Dockerfile_pc -t jenkinstest_pc ../
echo 刪除映象
docker rm -f jenkinstest_pc
echo 執行映象
docker run -p 5001:5001 --name jenkinstest_pc -d jenkinstest_pc
echo 刪除映象名稱為none的映象
docker images|grep -wn none|awk '{print $3 }'|xargs docker rmi

14.配置定時器(jenkins cron表示式,這表示每天凌晨拉去svn最新程式碼進行釋出)

 

 15.執行shell進行構建

 

 16.jenkins構建過程

 

 

 

 

 17.訪問我們剛才釋出的網站:http://118.24.60.212:5001/(這個是我自己的騰訊雲,大家可以訪問)

 18.最後謝謝大家的支援。謝謝大家