您的位置:首页 > 运维架构 > Docker

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

2016-08-24 00:00 573 查看
摘要: 参考网上示例,在Docker上搭建持续集成环境,部署 Jenkins、subversion工具。

在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/ 访问,如下:



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

该插件能够集成 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 输入域。



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

引用:http://sahipro.com/docs/using-sahi/configuring-sahi-with-xvbf.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: