去年就開始學習採用Docker+Jenkins+.Net Core搭建生成式流水線,一直拖到如今,也沒有完全的好好靜下來去總結總結。趁着如今對本身的嚴格要求下,逐漸開始重視自我總結,以此來鞏固逐漸失去的知識。html
本文地址:http://www.javashuo.com/article/p-ernpowah-y.html java
這裏能夠參考以前寫過的一篇文章:http://www.javashuo.com/article/p-crwoauvf-ce.html 內容比較簡單,但還算是可以實用,安裝的Docker版本是1.13.1,服務器版本是CentOS7.2。git
先說明一下,在Jenkins安裝時,咱們須要在裏面配置號Docker Compose組件,以此來支撐咱們在後面同時發佈多個網站或服務。有關docker compose知識能夠參見https://yeasy.gitbooks.io/docker_practice/content/swarm/github
因此咱們不直接拉取Jenkins鏡像,經過Dockerfile的形式來拉取Jenkins鏡像,並在容器內安裝好Docker Compose組件。而不單獨在宿主機上安裝Docker Compose,儘管那樣也沒問題,只需將應用程序直接部署到宿主機上就行,可是就失去了咱們想要設計成流水線的目的了。docker
先建立一個Jenkins文件夾並編寫Dockerfile文件:vim
1 # cd / 2 # mkdir Jenkins 3 # cd Jenkins 4 # touch Dockerfile 5 # vim Dockerfile
Dockerfile文件內容:bash
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)。curl
先來配置一個存放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容器已經正常運行了,能夠經過ip:port去訪問並配置。首次訪問後將看到這個界面,配置密碼。
須要從容器裏面查看一下密碼,以交互狀態進入容器並查看對應路徑下文件密碼。
# docker exec -it JenkinsContainer /bin/bash
# cat /var/jenkins_home/secrets/initialAdminPassword
獲得密碼,繼續下面的配置步驟,選擇推薦安裝的插件,而後等待安裝完成。
安裝完畢,開始設置用戶帳號信息,設置完畢,進入界面,整個Jenkins安裝且配置也就所有結束了。
接下來將開始設置Asp.Net Core應用程序的Dockerfile及Docker Compose實現生成式流水線的搭建,同時感謝@Loongle的文章,少走許多彎路。
本文地址:http://www.javashuo.com/article/p-ernpowah-y.html
2018-08-31,望技術有成後能回來看見本身的腳步