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
在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
相关文章推荐
- 持续集成学习笔记-入门篇(3)持续集成环境的搭建
- Jenkins+Docker搭建持续集成测试环境
- Jenkins+Docker搭建持续集成测试环境
- 持续集成环境的搭建(二)——Docker的安装
- Jenkins学习总结(7)——搭建Jenkins+Maven+SVN+Tomcat持续集成环境
- Ubuntu+Jenkins+GitHub学习搭建持续集成环境
- Jenkins+Docker搭建持续集成测试环境
- Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境
- Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
- Jenkins+Docker搭建持续集成测试环境
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
- Android开发、测试持续集成环境Jenkins搭建
- Linux下Jenkins+git+gradle持续集成环境搭建
- Jenkins+Maven+SVN快速搭建持续集成环境
- DevOps实践-从0到1搭建敏捷团队的持续集成环境
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
- 基于 Jenkins 快速搭建持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境(转)