目的:搭建一個在linux服務器上持續(xù)部署asp.net core項目的例子,asp.net core項目和Jenkins都是容器化部署。
環(huán)境:ubuntu 18.04 (centos也可以)
Docker version 18.09.6
基礎Jenkins鏡像 jenkins/jenkins
持續(xù)集成是什么?http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
Jenkins介紹https://blog.csdn.net/miss1181248983/article/details/82840006
1.在ubuntu服務器上袜炕,安裝docker
安裝方式參考文檔:https://docs.docker.com/install/linux/docker-ce/ubuntu/
加入docker用戶組:https://docs.docker.com/install/linux/linux-postinstall/
2.構建Jenkins鏡像,以jenkins/jenkins鏡像為基礎
FROM jenkins/jenkins:lts
# 可以根據(jù)需要安裝工具
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins
如果不想自己構建鏡像贡翘,可以直接用我構建好的蝇庭,在docker hub上:forestgzh/jenkins (不保證長期有效吼旧。梨与。)
3.在碼云Gitee上托管asp.net core的項目代碼(因為碼云有免費私人倉庫堕花。。)
4.啟動Jenkins
在服務器上啟動forestgzh/jenkins鏡像:
docker run --name my-jenkins -p 8080:8080 -p 50000:50000 \
-v ~/jenkins:/var/jenkins_home \
-v /usr/bin/docker:/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-d forestgzh/jenkins
-v /var/run/docker.sock:/var/run/docker.sock 這條指令是為了Jenkins容器內(nèi)能與宿主機的docker通信蛋欣,這條非常關鍵航徙。
5.配置Jenkins
Jenkins容器啟動完成后,用 ‘docker logs 容器名’ 查看密碼:一串數(shù)字陷虎,一眼就看到了到踏,
然后在瀏覽器打開:http://ip:8080 ,ip是服務器的ip地址
進去后輸入剛剛docker logs查看到的密碼尚猿,進去后設置用戶窝稿,一直下一步就可以了。
然后點擊系統(tǒng)管理->插件管理->下載Gitee插件
然后凿掂,系統(tǒng)管理->系統(tǒng)設置伴榔,配置如下:
具體配置過程參考:https://gitee.com/help/articles/4193#article-header0
配置完后保存。
回到首頁庄萎,新建一個任務:
然后配置任務:
然后配置Build Triggers
最后踪少,最重要的是Build,下拉框選擇執(zhí)行shell:
#!/bin/bash
# 獲取短版本號
GITHASH=`git rev-parse --short HEAD`
sudo docker stop testjenkins
sudo docker rm testjenkins
echo ---------------Building Docker Image...------------------
sudo docker build -t testjenkins:$GITHASH .
sudo docker tag testjenkins:$GITHASH testjenkins:latest
echo ---------------Launching Container...------------------
sudo docker run --name testjenkins -d -p 5000:80 testjenkins:latest
Jenkins就是根據(jù)前面的觸發(fā)器觸發(fā)這個腳本去構建鏡像,持續(xù)部署糠涛。
這邊設的是每兩分鐘援奢,可以自行設置Gitee webhook 觸發(fā)構建,Gitee webhook參考文檔:https://gitee.com/help/articles/4193#article-header13
配置完后保存忍捡,查看任務集漾,可以看到構建部署歷史:
再看項目,每次提交后砸脊,能訪問到最新的頁面: