實戰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服務的部署。linux

1、 部署docker環境

要運行Docker容器須要先部署docker,咱們使用免費的Docker CE(社區版)。這裏根據須要在1到2臺服務器(或虛擬機)上部署Docker,若是隻是用於學習測試,能夠將全部服務部署在一臺服務器或虛擬機上,若是是生產環境,一般須要在Jenkins服務器和應用服務器都部署Docker服務。git

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

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

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 鏡像源來節約時間:shell

$ 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能夠正確地拉取鏡像並運行容器了。vim

Hello from Docker!centos

2、 部署Jenkins

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

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的配置和使用會放到下一篇文章。瀏覽器

3、 部署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端口,看到登錄界面的話即爲安裝成功。

4、總結

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

相關文章
相關標籤/搜索