去年就開始學習採用Docker+Jenkins+.Net Core搭建生成式流水線,一直拖到現在,也沒有徹底的好好靜下來去總結總結。趁著現在對自己的嚴格要求下,逐漸開始重視自我總結,以此來鞏固逐漸失去的知識。 本文地址:https://www.cnblogs.com/CKExp/p/9536864. ...
去年就開始學習採用Docker+Jenkins+.Net Core搭建生成式流水線,一直拖到現在,也沒有徹底的好好靜下來去總結總結。趁著現在對自己的嚴格要求下,逐漸開始重視自我總結,以此來鞏固逐漸失去的知識。
本文地址:https://www.cnblogs.com/CKExp/p/9536864.html
一、安裝Docker
這裡可以參考之前寫過的一篇文章:https://www.cnblogs.com/CKExp/p/8159269.html 內容比較簡單,但還算是能夠實用,安裝的Docker版本是1.13.1,伺服器版本是CentOS7.2。
二、安裝Jenkins
先說明一下,在Jenkins安裝時,我們需要在裡面配置號Docker Compose組件,以此來支撐我們在後面同時發佈多個網站或服務。有關docker compose知識可以參見https://yeasy.gitbooks.io/docker_practice/content/swarm/
所以我們不直接拉取Jenkins鏡像,通過Dockerfile的形式來拉取Jenkins鏡像,併在容器內安裝好Docker Compose組件。而不單獨在宿主機上安裝Docker Compose,儘管那樣也沒問題,只需將應用程式直接部署到宿主機上就行,但是就失去了我們想要設計成流水線的目的了。
先創建一個Jenkins文件夾並編寫Dockerfile文件:
1 # cd / 2 # mkdir Jenkins 3 # cd Jenkins 4 # touch Dockerfile 5 # vim Dockerfile
Dockerfile文件內容:
FROM jenkins USER root #更新源並安裝libltdl7 RUN apt-get update && apt-get install -y libltdl7 ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安裝 Docker-Compose RUN curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-'uname -s'-'uname -m' -o /usr/local/bin/docker-compose # 授權 RUN chmod +x /usr/local/bin/docker-compose
開始構建該鏡像
# docker build . -t myjenkinsimage
等待一會終於可以了,註意一下,如果在安裝Docker-Compose時提示出錯了,請看一下對應路徑中 ‘uname -s'-'uname -m' 是否是這樣寫的,直接安裝Docker Compose的寫法是$(uname -s)-$(uname -m)。
先來配置一個存放jenkins配置信息的文件夾並修改文件夾許可權,該文件夾名是在Jenkins容器中對應的Jenkins_home文件夾,所以我們也最好直接取上這個名字即可。
# mkdir -p /var/jenkins_home
# chown -R 1000 /var/jenkins_home
開始運行一個以Jenkins為鏡像的容器並掛載Docker套接字,以便能在容器里與Docker守護進程互動,指明Jenkins數據掛載到宿主機位置和設置容器名稱,基礎鏡像名稱等。
# docker run -d --name JenkinsContainer -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -v /var/jenkins_home :/var/jenkins_home \ myjenkinsimage
啟動成功,容器已經創建完畢
三、配置Jenkins
現在Jenkins容器已經正常運行了,可以通過ip:port去訪問並配置。首次訪問後將看到這個界面,配置密碼。
需要從容器裡面查看一下密碼,以交互狀態進入容器並查看對應路徑下文件密碼。
# docker exec -it JenkinsContainer /bin/bash
# cat /var/jenkins_home/secrets/initialAdminPassword
得到密碼,繼續下麵的配置步驟,選擇推薦安裝的插件,然後等待安裝完成。
安裝完畢,開始設置用戶賬號信息,設置完畢,進入界面,整個Jenkins安裝且配置也就全部結束了。
接下來將開始設置Asp.Net Core應用程式的Dockerfile及Docker Compose實現生成式流水線的搭建,同時感謝@Loongle的文章,少走許多彎路。
本文地址:https://www.cnblogs.com/CKExp/p/9536864.html
2018-08-31,望技術有成後能回來看見自己的腳步