国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot

這篇具有很好參考價值的文章主要介紹了DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.環(huán)境要求

以下服務器的操作系統(tǒng)均為Centos7

  • 服務器A:Gitlab
  • 服務器B:GitlabRunner、Docker、docker-compose、Java1.8、maven3.6.3、git

ps:這里可以把服務器B的GitlabRunner、Java1.8、maven3.6.3、git單獨提出來,獨立部署,需要java的原因是maven,maven用于打包。

應用服務器B就只需要docker和docker-compose就可以了,為了演示方便,這里放一起的。

相關服務搭建教程參照官方文檔或其他第三方靠譜博客教程!

當前我的服務版本

  • Gitlab:14.9
  • GitlabRunner:14.10.0
  • docker:20.10.14
  • docker-compose:1.29.2
  • Git:2.31.1 ,事先檢查下Git是否最新版本,否則后面會出錯。

2.主要流程

我們的主要流程就是通過Gitlab管理代碼,然后利用Gitlab自帶的Gitlab CI/CD功能與GitlabRunner進行注冊綁定。

綁定成功后,每提交一次代碼,都可以觸發(fā)GitlabRunner,從而執(zhí)行相應的腳本程序?qū)崿F(xiàn)自動部署。

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

3.GitlabRunner 安裝和注冊

3.1 安裝

官方文檔安裝教程:Install GitLab Runner manually on GNU/Linux | GitLab

總結(jié)一共就2個步驟:

1.添加gitlab官方庫:

For Debian/Ubuntu/Mint

1

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

For RHEL/CentOS/Fedora

1

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

2.命令安裝:

For Debian/Ubuntu/Mint

1

sudo apt-get install gitlab-ci-multi-runner

For RHEL/CentOS/Fedora

1

sudo yum -y install gitlab-ci-multi-runner

3.2 開始注冊

1.打開Gitlab需要自動部署的倉庫,選擇Setting-》CI / CD -》Runners。

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

2.如下圖,可以看到最關鍵的兩個信息,這倆待會GitlabRunner注冊的時候會用到.

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

3.GitlabRunner注冊:

基本命令:

  • 注冊:gitlab-runner register
  • 查看已注冊Runner:gitlab-runner list
  • 取消所有注冊:gitlab-runner unregister --all-runners

回到服務器B,執(zhí)行命令gitlab-runner register?注冊流程詳解:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

  • Enter the GitLab instance URL (for example,?The DevSecOps Platform | GitLab):
    輸入gitlab的服務URL
  • Enter the registration token:
    輸入令牌,參考上圖
  • Enter a description for the runner:
    輸入Runner描述
  • Enter tags for the runner (comma-separated)

給這個gitlab-runner輸入一個標記,這個tag非常重要,在后續(xù)的使用過程中需要使用這個tag來指定gitlab-runner(yml文件,job通過設置tags標簽選用指定的Runner)

  • Enter optional maintenance note for the runner:
    輸入可選維護說明
  • Enter an executor: docker+machine, docker-ssh+machine, custom, docker-windows, docker-ssh, ssh, kubernetes, docker, parallels, shell, virtualbox:

回車結(jié)束,安裝gitlab-runner文件夾下會自動生成config.

回到gitlab后臺Runner設置處,刷新頁面就可以看到新增的一個Runner:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

4.制作腳本! 重要!!!

當提交代碼后,我們應該怎么用Shell腳本來控制構(gòu)建和部署呢?Gitlab為我們提供好了一個模版,就是在倉庫根目錄下創(chuàng)建名為:.gitlab-ci.yml?文件

這里以一個springboot項目為例子,在原項目基礎上增加了3個文件(.gitlab-ci.yml 、Dockerfile 、docker-compose.yml),下面展示了文件的位置和內(nèi)容,內(nèi)容根據(jù)你的需求修改就行了,需要熟悉Dockerfile 和 docker-compose.yml的一些基礎文件結(jié)構(gòu)及語法:

3個文件位置圖

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

.gitlab-ci.yml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

stages:

??- build

??- deploy_dev

??- clean

# 打包鏡像

build:

??stage: build

??only:

????- dev

??script:

????- $MAVEN_HOME/bin/mvn clean package '-Dmaven.test.skip=true'

????- cp ./XXX/target/XXX.jar docker/

????- cd docker

????- docker build -t dev/XXX:v1.0.0 .

??tags:

????- maven

# 部署開發(fā)服務器

deploy_dev:

??stage: deploy_dev

??only:

????- dev

??script:

????- cd docker

????- docker-compose down

????- docker-compose up -d

??tags:

????- maven

#清理虛懸鏡像

clean:

??stage: clean

??only:

????- dev

??script:

????- docker rmi $(docker images -q -f dangling=true)

??tags:

????- maven

在根目錄中創(chuàng)建Docker文件夾,

創(chuàng)建Dockerfile:

1

2

3

4

5

6

7

8

9

10

#FROM java:8 #java:8這個鏡像體積有643MB,打包鏡像后體積太大了,不建議使用

# openjdk:8-jre-alpine 體積最小,只有85MB

FROM openjdk:8-jre-alpine

# 以下2個RUN解決 java驗證碼接口報錯的問題,

RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main\n\

https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" > /etc/apk/repositories

RUN apk --update add curl bash ttf-dejavu && \

??????rm -rf /var/cache/apk/*

COPY . /opt/app

WORKDIR /opt/app

創(chuàng)建docker-compose.yml :

1

2

3

4

5

6

7

8

9

10

version: '3.1'

services:

??education-course:

????container_name: dev-XXX-server

????restart: always

????image: dev/XXX:v1.0.0

????network_mode: "host"

????volumes:

??????- /opt/XXX-server/logs:/XXX/logs

????command: java -jar -Xms1024m -Xmx1024m -Duser.timezone=GMT+08 xxx.jar --spring.profiles.active=dev

5.測試

本地idea提交一次代碼到dev分支,可以到已經(jīng)在跑了

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

點進去看,出現(xiàn)問題

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

這里提示我們的git版本太低了

當前git版本:

1

2

[root@localhost local]# git --version

git version 1.8.3.1

升級最新版git后:

1

2

[root@localhost yum.repos.d]# git --version

git version 2.24.4

回到gitlab后臺,這里手動再執(zhí)行一次:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

最新的一次已通過 passed:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

查看日志的方法,進第一個build查看日志,獲取項目的路徑(大家有更好的方法可以告訴下我)

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

cd到 項目的docker目錄,使用

1

docker-compose logs -ft

測試接口:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

6.常見問題

問題1:自動化部署build報錯:

DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot,devops,gitlab,docker

解決方法,執(zhí)行命令:

1

sudo chmod 777 /var/run/docker.sock

問題2:docker apline temporary error (try again later) 錯誤
沒有dns導致的

在本機系統(tǒng)上創(chuàng)建daemon文件添加dns,然后重啟docker

1

2

3

4

5

vim /etc/docker/daemon.json

{

"dns": ["8.8.8.8"]

}

sudo service docker restart文章來源地址http://www.zghlxwxcb.cn/news/detail-649129.html

到了這里,關于DevOps系列文章 之 Gitlab+Docker自動部署SpringBoot的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Devops系列六(CI篇之jenkinsfile)jenkins將gitlab helm yaml和argocd 串聯(lián),自動部署到K8S

    Devops系列六(CI篇之jenkinsfile)jenkins將gitlab helm yaml和argocd 串聯(lián),自動部署到K8S

    上文我們說了pipeline,已為本文鋪路不少,接下里就是將之串聯(lián)起來。 先想說下,為什么是jenkinsfile, 因為jenkins job還支持pipeline方式。 這種方式,不建議實際使用,僅限于測試或調(diào)試groovy代碼。 下面貼出來,我們的使用方式。好處是:采用分布式的思想,改動git上的jenkinsf

    2024年02月13日
    瀏覽(26)
  • DevOps系列文章 之 SpringBoot整合GitLab-CI實現(xiàn)持續(xù)集成

    DevOps系列文章 之 SpringBoot整合GitLab-CI實現(xiàn)持續(xù)集成

    在企業(yè)開發(fā)過程中,我們開發(fā)的功能或者是修復的BUG都需要部署到服務器上去,而這部分部署操作又是重復且繁瑣的工作,GitLab-CI 持續(xù)集成為我們解決了這一痛點,將重復部署的工作自動化,大大的節(jié)省了程序員們的寶貴時間。本文詳細講述了 GitLab-CI 持續(xù)集成的安裝、部署

    2024年02月13日
    瀏覽(23)
  • Devops系列五(CI篇之pipeline libraray)jenkins將gitlab helm yaml和argocd 串聯(lián),自動部署到K8S

    Devops系列五(CI篇之pipeline libraray)jenkins將gitlab helm yaml和argocd 串聯(lián),自動部署到K8S

    本文是CI篇的上文,因為上一篇已經(jīng)作了總體設計,就不再贅述,有需要的請看前文。 我們將演示,使用CI工具–jenkins,怎么和CD工具–argocd串聯(lián),重點是在Jenkins該怎么做。準備工作和argocd等相關事項,在前文已鋪墊ok。 Jenkins,我們是使用k8s來部署的一個master-slave結(jié)構(gòu)的集群

    2024年02月13日
    瀏覽(33)
  • DevOps系列文章 之 Docker in Docker

    一、 ?背景介紹 工作中,要實現(xiàn)在docker中運行docker,實現(xiàn)鏡像的拉取,創(chuàng)建,修改,上傳等操作。 嘗試過在docker中,安裝docker。行不通,服務起不來。 而且直接在 docker 容器內(nèi)嵌套安裝 docker 未免太過臃腫。 內(nèi)部安裝與運行Docker無疑增加了服務器鏡像的大小,同時還增加D

    2024年02月16日
    瀏覽(20)
  • DevOps系列文章 之 docker 制作kafka鏡像

    Docker制作Kafka鏡像教程 概述 本教程將指導你如何使用Docker制作一個Kafka鏡像。Kafka是一個高性能、分布式的消息隊列系統(tǒng),用于處理大規(guī)模的實時數(shù)據(jù)流。使用Docker制作Kafka鏡像可以方便地部署和管理Kafka集群。 整體流程 下面是制作Kafka鏡像的整體流程: 步驟1:安裝Docker 首先

    2024年02月15日
    瀏覽(58)
  • DevOps系列文章之 Spring Boot Docker打包

    DevOps系列文章之 Spring Boot Docker打包

    應用準備容器化,因為幾十個應用從測試到發(fā)布太麻煩了,而且還會因為環(huán)境的因素導致部署中出現(xiàn)各種問題。為了在開發(fā)、測試、生產(chǎn)都能保持一致的環(huán)境,就引進了容器技術,而目前常用的應用使用基于spring boot的。 在Spring Boot應用中,我們可以約定不同的標識來定義不

    2024年02月11日
    瀏覽(25)
  • DevOps系列文章之 Docker 安裝 NFS 服務器

    DevOps系列文章之 Docker 安裝 NFS 服務器

    環(huán)境: 192.186.2.105 NFS 服務器 192.168.2.106 Client 客戶端 安裝 一、服務器端 https://github.com/f-u-z-z-l-e/docker-nfs-server 1、創(chuàng)建目錄 2、啟動腳本 二、安裝 客戶端 1、安裝 2、查看 showmount -e 192.168.59.139 如圖所示可以看到NFS服務器內(nèi)的共享文件夾為nfs(因為我們的nfs服務端部署為docker部

    2024年02月14日
    瀏覽(21)
  • DevOps系列文章之 自動化測試大全(單測和集成測試)

    DevOps系列文章之 自動化測試大全(單測和集成測試)

    核心目標: 主要是功能測試和覆蓋率測試 業(yè)界常用主流工具 GoogleTest GoogleTest是一個跨平臺的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++單元測試框架,由google公司發(fā)布,為在不同平臺上為編寫C++測試而開發(fā)的。它提供了豐富的斷言、致命和非致命判斷、參數(shù)化、”

    2024年02月14日
    瀏覽(16)
  • 記錄使用gitlab實現(xiàn)Docker自動化部署

    記錄使用gitlab實現(xiàn)Docker自動化部署

    目錄 前言 一、gitlab-runner docker安裝 二、gitlab-runner的注冊與使用 1.注冊 2. .gitlab-ci.yml 腳本編寫 總結(jié) 前面搭建了gitlab與harbor ,現(xiàn)在就使用它們來實現(xiàn)自動化docker部署。所謂自動化部署,就是提交代碼到指定分支時自動觸發(fā)預先寫好的腳本,來實現(xiàn)打包,推送鏡像。想要實現(xiàn)這

    2023年04月11日
    瀏覽(14)
  • Gitlab + Docker + Jenkins + Harbor實現(xiàn)自動化部署

    Gitlab + Docker + Jenkins + Harbor實現(xiàn)自動化部署

    目錄 文章目錄 前言 一、第一臺服務器--Jenkins 1、安裝前 2、安裝Jenkins 3、修改正在跑容器的端口 4、Jenkins內(nèi)部插件和配置? 二、第二臺服務器--Harbor 1、安裝docker-compose 2.安裝及配置 3、卸載Harbor? 4、Harbor啟動后操作 三、第三臺服務器--生產(chǎn)環(huán)境? 1、配置私服地址 四、Jenkin

    2024年02月14日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包