1. 程式人生 > >Docker+Jenkins+Maven+SVN搭建持續整合環境

Docker+Jenkins+Maven+SVN搭建持續整合環境

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"]}
檢視指定映象tags版本

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