基于Docker構建Jenkins和Svn服務
碼農們很定都知道svn的重要性,機器壞掉丟代碼的慘痛教訓想必很多人都有。
jenkins可能很多人都不了解。這是一個持續(xù)集成的工具,在敏捷開發(fā)領域很流行;跟svn結合可以實現(xiàn)定期build、checkin之后build等功能。介紹可以看這里https://www.ibm.com/developerworks/cn/java/j-lo-jenkins/
基于docker單獨部署jenkins和svn都是很簡單的事情,找到image,配置端口、配置volume,完事。
這篇文章主要介紹如何把兩個服務連起來。
link是docker提供的重要工具,它提供類似名字服務的功能,link起來的容器可以通過名字標識訪問。
下面這篇文章詳細介紹了link的使用方法和原理。http://dockerpool.com/static/books/docker_practice/network/linking.html
編排文件
用編排文件來描述互相依賴的服務是推薦的方式。這兩個服務的編排文件如下。
- jenkins:
- image: 'jenkins:latest'
- labels:
- aliyun.scale: '1'
#端口映射。8080使用戶訪問的端口,50000是與svn交互的端口。不過這個例子中我們沒有使用。
#另外,實際部署是需要添加volume
- ports:
- - '50000:50000/tcp'
- - '8080:8080/tcp'
- restart: always
#使用link之后,可以用svn這個名字訪問svn
- links:
- - svn:svn
- svn:
- environment:
- - SVN_REPONAME=repos
- image: 'erikxiv/subversion:latest'
- labels:
- aliyun.scale: '1'
- ports:
- - '3690:3690/tcp'
- restart: always
部署步驟
下面以阿里云容器服務為例,介紹一下部署過程
1、創(chuàng)建編排文件,輸入上面的文件內容


2、用該編排文件啟動服務

3、找到服務的節(jié)點IP,用http://節(jié)點IP:8080/訪問jenkins服務

4、在jenkins上創(chuàng)建一個新項目,用link名訪問svn
