實戰Spring Boot應用的自動化構建和部署(上)


現如今SpringBoot、Jenkins、Docker這些技術已經非常流行,SpringBoot提高了JavaEE應用的開發效率,Jenkins實現了項目的持續集成,Docker使應用的部署變得靈活。本系列文章將通過這些技術實現SpringBoot的自動化構建和部署。具體流程模擬工作中常見的場景,將代碼提交至SVN,去Jenkins(部署於公司內網以訪問公司的SVN服務器)觸發構建項目,Jenkins拉取SVN的代碼構建成Docker鏡像並將鏡像推送至harbor鏡像倉庫(部署於外網以被線上應用服務器進行鏡像拉取),最后Jenkins再遠程調用線上應用服務器的shell命令,使應用服務器拉取剛構建好的鏡像進行部署。整個過程人工參與的部分僅有代碼提交和點擊Jenkins構建按鈕(甚至可以讓Jenkins自動檢測SVN代碼提交自動觸發構建)。本文先介紹Docker服務、Harbor鏡像倉庫和Jenkins服務的部署。

一、 部署docker環境

要運行Docker容器需要先部署docker,我們使用免費的Docker CE(社區版)。這里根據需要在1到2台服務器(或虛擬機)上部署Docker,如果只是用於學習測試,可以將所有服務部署在一台服務器或虛擬機上,如果是生產環境,通常需要在Jenkins服務器和應用服務器都部署Docker服務。

有能力的建議直接看官方文檔並跳過本節
https://docs.docker.com/install/linux/docker-ce/centos/

我使用的是操作系統是CentOS,對於CentOS系統,Docker官方要求使用CentOS 7.x的版本。

1. 配置yum倉庫

$ sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2
  
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

如果在下一步下載速度不佳,可以考慮使用阿里的Docker CE 鏡像源來節約時間:

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. 安裝Docker

$ sudo yum -y install docker-ce docker-ce-cli containerd.io

3. 啟動Docker

$ sudo systemctl start docker

4. 驗證Docker

$ sudo docker run hello-world

看到以下輸出,證明剛安裝的Docker可以正確地拉取鏡像並運行容器了。

Hello from Docker!

二、 部署Jenkins

Jenkins支持Linux包管理器安裝(如yum)、war包部署和Docker容器部署。我選擇使用Jenkins的官方Docker鏡像部署Jenkins,不過為了在官方鏡像的基礎上多做兩件事情,這里需要寫一個Dockerfile重新打包Jenkins鏡像。這里需要保證部署Jenkins的服務器上已經安裝了Docker服務。

1. 編寫Dockerfile

vim Dockerfile
#使用Jenkins官方鏡像作為基礎鏡像
FROM jenkins/jenkins:lts
#將賬戶改為root
USER root
#安裝jenkins調用容器外部docker命令時需要的依賴
RUN apt update && apt install -y libltdl-dev

2. 打包鏡像

sudo docker build -t myimg/jenkins .

3. 啟動Jenkins容器

run -d -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker --name jenkins-container03 mkimg/jenkins

這里將Jenkins的主目錄掛載到宿主機,並掛載Docker相關路徑以供Jenkins調用宿主機的Docker。訪問ip:8080,看到Jenkins的登錄頁面證明Jenkins的部署已經成功。Jenkins的配置和使用會放到下一篇文章。

三、 部署Harbor

Docker官方提供了公共倉庫Docker hub,但是企業不希望公開的應用需要通過搭建私有鏡像倉庫來存放,Docker官方提供的registry私有倉庫缺少UI界面需要額外安裝,我們更願意選擇流行的Harbor來作為私有鏡像倉庫,它提供了易用的UI界面和管理功能。有能力的可以參照官方文檔完成部署。https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

1. 安裝Docker Compose

Harbor使用Docker Compose進行部署,所以需要先安裝Docker Compose。可以參照GitHub https://github.com/docker/compose/releases

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

驗證

docker-compose --version

2. 下載harbor聯網安裝版,參照https://github.com/goharbor/harbor/releases

wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz
tar -zxvf harbor-online-installer-v1.7.4.tgz

進入解壓后的目錄

cd harbor/

修改配置文件harbor.cfg的主機配置為實際的IP或域名

hostname = myhost

執行安裝腳本

./install.sh

在瀏覽器中打開剛才設置的hostname,harbor后台默認使用80端口,看到登陸界面的話即為安裝成功。

四、總結

至此實現自動化構建和部署所需的服務環境已經搭建完畢,下片文章將介紹具體的配置和使用,將整個流程打通。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM