Docker 学习 (三)—— 持续集成环境搭建

在Docker上搭建持续集成环境,环境采用 Jenkins、subversion。

环境:使用CentOS7系统。

一、 配置Jenkins 容器:

# docker pull jenkins  //下载容器

在 Docker 主机上,创建一个目录(例如,/home/jenkins_home),并修改权限(chmod 777)以便 Jenkins 容器能读写该目录,

如果不是root权限下,最好对jeckins_home授权到当前使用用户名下,如:chgrp -R admin jenkins_home , chown -R admin jenkins_home 

# cd /home   

# mkdir /jenkins_home

# chmod 777 jenkins_home/

启动jeckins,-v 映射端口与目录,也可直接目录建在/var上,

不需要对应,可直接#docker run -d -t --name myjenkins -p 8080:8080 -v /home/jenkins_home jenkins       //linux中创建jenkins_home

#docker run -d -t --name myjenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home jenkins

上述命令执行完成后,可直接在宿主机上访问, http://192.168.153.151:8080/ 访问,如下:

164139_Mw8J_1253780.png

可以安装插件,系统管理->插件管理,可选插件进行搜索:

该插件能够集成 Jenkins 与 Docker:

Docker Plugin

该插件用以发布构建生成 HTML 报表,方便日后查看:

HTML Publisher Plugin

二、配置subversion容器:

#docker pull bsboiko/subversion

#docker run -i -t bsboiko/subversion /bin/bash    //进入交互模式

在容器中创建目录

root@56d82455dfa7:/# mkdir -p /var/svn/repos

基于该目录创建 Subversion 资源库

root@56d82455dfa7:/# svnadmin create /var/svn/repos

root@56d82455dfa7:/# cd /var/svn/repos/conf

在资源库目录下的 svnserve.conf 文件中删除“password-db = passwd”前面的注释符 #,

root@56d82455dfa7:/# vi svnserve.conf

 

anon-access = read  

auth-access = write  

password-db = passwd  

authz-db = authz

realm = /var/svn/repos //认证空间名,版本库所在目录

:wq

并在 passwd 文件中添加一行“lb=1234”,是自己定义的用户名/密码

root@56d82455dfa7:/# vi passwd

lb=1234  //这里的username和password自己设置 

:wq

root@56d82455dfa7:/# vi authz  //authz最后加上以下两行(这两行解决了 SVN客户端解决authorization failed问题)

 

[groups]   

admin = lb  

user = shenrui   

[/]   

@admin = rw   

@user = rw   

* = r

按ESC,:wq保存

root@56d82455dfa7:/# exit

#docker commit 56d82455dfa7 mysvn //保存下来创建一个新镜像 mysvn,56d82455dfa7是container id

启动 mysvn 容器。启动时,添加容器到主机的端口映射“-p 3690:3690”

#docker run -t -d -p 3690:3690 --name mysvn mysvn svnserve -d --foreground -r /var/svn/repos

# docker images //查看一下安装的镜像

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE

mysvn                latest              263b26a72e17        3 minutes ago       351.6 MB

jenkins              latest              e9a6b4ad873f        2 days ago          708.9 MB

bsboiko/subversion   latest              00a5c92e7403        21 months ago       351.5 MB

$ docker ps  //查看运行的容器

CONTAINER ID    IMAGE    COMMAND                  CREATED             STATUS              PORTS                               NAMES

6f4ebcd30df8      jenkins     "/bin/tini -- /usr/lo"   22 seconds ago    Up 21 seconds    0.0.0.0:8080->8080/tcp, 50000/tcp   myjenkins

e5eac8cda3c1    mysvn     svnserve -d --foregr"   21 minutes ago    Up 21 minutes    0.0.0.0:3690->3690/tcp              mysvn

 

可进入查看SVN启动情况

# docker exec -it e5eac8cda3c1 /bin/bash

root@263b26a72e17:/# netstat -natp | grep svnserve

root@263b26a72e17:/# ps aux | grep svnserve  //ps -ef|grep svnserve

(或重启动,可直接使用镜像,不需要此操作):

root@263b26a72e17:/# kill -9 4650 (进程ID)

root@263b26a72e17:/#svnserve -d -r /var/svn/repos 

可在window用SVN工具测试是否成功,用Repo-browser菜单功能。地址:svn://192.168.153.151/repos

三、配置Sahi 镜像

# docker pull shenrui/sahi

# docker run -i -t shenrui/sahi /bin/bash    //进入交互模式

三、配置TCP监听端口

接下来要开启 Docker 的 TCP 监听端口。开启的方法在不同的系统上有所不同。如 Docker 主机为 RHEL 6.5。开启的方法是在/etc/sysconfig/docker 中设置 other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock",然后运行“service docker restart”重启 Docker 服务。

本实例 Docker 主机采用CentOS 7,方法如下:

在一个新的Socket中启用一个远程API

#touch /etc/systemd/system/docker-tcp.socket

#cd /etc/systemd/system/

#vi docker-tcp.socket //输入下列内容

[Unit]

Description=Docker Socket for the API

[Socket]

ListenStream=2375

BindIPv6Only=both

Service=docker.service

[Install]

WantedBy=sockets.target

按Esc,:wq保存

#chmod 755 sockets.target

启用这个服务开机启动

#systemctl enable docker-tcp.socket

#systemctl stop docker

#systemctl start docker-tcp.socket

#systemctl start docker

测试是否成功

docker -H tcp://127.0.0.1:2375 ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES

916723fd2350        jenkins             "/bin/tini -- /usr/lo"   20 minutes ago      Up 20 minutes       0.0.0.0:8080->8080/tcp, 50000/tcp   myjenkins

完成后,进入 Jenkins 的系统配置页面(系统管理>系统设置),在最底部比之前增加了一个 Cloud 的部分。点击 新增一个云(Add a new cloud),选择 Docker 添加一个 Docker 主机。这里,因为 Jenkins 运行在 Docker 的容器里,直接用私有 IP(ifconfig 里 docker0 对应的 IP)加端口 2375 填写 Docker URL 输入域。

170458_NKsr_1253780.png

 

 

 

原文引用:http://www.ibm.com/developerworks/cn/opensource/os-cn-JenkinsDockerSahi/index.html

引用:http://sahipro.com/docs/using-sahi/configuring-sahi-with-xvbf.html

转载于:https://my.oschina.net/u/1253780/blog/737174

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值