Docker+Jenkins+Maven+SVN搭建持续集成环境
环境拓扑图(实验项目使用PHP环境)
发布流程图
环境说明
- 系统:Centos 7.4 x64
- Docker版本:18.09.0
- Maven版本:3.6
- Tomcat版本:8
- JDK版本:1.8
- Jenkins版本:2.7
- SVN版本:1.7.14
- 管理节点Jenkins/SVN:192.168.1.79
- 测试节点:192.168.1.78
- 生产节点:192.168.1.77
应用环境部署
1、管理节点:SVN安装配置及简单使用
1.1、安装SVN服务
yum -y install subversion
1.2、创建SVN目录
mkdir /home/svn
1.3、创建SVN仓库名为repos
svnadmin create /home/svn/repos
1.4、修改repos库内主配置文件
vi /home/svn/repos/conf/svnserve.conf
# none设置不允许匿名访问 anon-access = none # 认证为可写 auth-access = write # 密码数据库文件为passwd password-db = passw # 认证数据库文件为authz authz-db = authz
1.5、修改passwd文件 添加用户
vi /home/svn/repos/conf/passwd
# 用户管理 [users] # 用户名为test。密码123456。 test = 123456
1.6、修改authz文件 赋值创建用户权限
vi /home/svn/repos/conf/authz
# 创建仓库目录“/”权限 [repos:/] # 赋值test 读写权限 test = rw
1.7、启动SVN服务
svnserve -d -r /home/svn
注:仓库地址 svn://192.168.1.79/repos
2、客户端:连接SVN创建文件
2.1、 windos 连接SVN 输入密码
2.2 repos 文件夹下创建index.html
2.3、文件已html后缀的网页文件
index.html文件内容:<h1>repos</h2>
2.3、提交代码
3、部署Docker镜像仓库
注:保证所有节点都提前安装好Docker应用
3.1、管理节点:下载安装镜像仓库
docker run -d \ -v /opt/registry:/var/lib/registry \ -p 5000:5000 \ --restart=always \ --name registry \ registry
命令:docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dba32d8c784d registry "/entrypoint.sh /etc…" 4 minutes ago Up 4 minutes 0.0.0.0:5000->5000/tcp registry
3.2、管理节点:在部署节点配置Docker可信任私有仓库:
vi /etc/docker/daemon.json
{"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.1.79:5000"]}
命令:curl http://192.168.1.79:5000/v2/_catalog {"repositories":[]}
命令:curl http://192.168.1.79:5000/v2/lnmp-nginx/tags/list {"name":"lnmp-nginx","tags":["base"]}
3.3、测试节点:整理Dockerfile(提前整理好的LNMP环境包)
Dockerfile-lnmp/ ├── nginx │ ├── Dockerfile │ ├── nginx-1.12.1.tar.gz │ └── nginx.conf └── php ├── Dockerfile ├── php-5.6.31.tar.gz └── php.ini
- LNMP包下载地址:https://pan.baidu.com/s/1SHR6WDMXKvPlXOB1J0y5tg
- 密码:ze4f
3.4、测试节点:构建LNMP环境
# 解压包,进入nginx目录 unzip Dockerfile-lnmp.zip;cd Dockerfile-lnmp/nginx/ # 构建nginx镜像容器 docker build -t 192.168.1.79:5000/lnmp-nginx:base . # 进入php目录 cd ../php/ # 构建php镜像如期 docker build -t 192.168.1.79:5000/lnmp-php:base .
注:地址IP需要根据环境修改,确认执行完毕,无误。
3.5 测试节点:上传到镜像仓库
docker push 192.168.1.79:5000/lnmp-nginx:base
docker push 192.168.1.79:5000/lnmp-php:base
4、部署节点:安装docker-compose