真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

Gitlab的CI/CD功能怎么用

這篇文章主要介紹Gitlab的CI/CD功能怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯公司是一家朝氣蓬勃的網站建設公司。公司專注于為企業(yè)提供信息化建設解決方案。從事網站開發(fā),網站制作,網站設計,網站模板,微信公眾號開發(fā),軟件開發(fā),微信小程序,10多年建站對成都玻璃鋼坐凳等多個行業(yè),擁有豐富建站經驗。

SpringBoot實戰(zhàn)電商項目mall(50k+star)地址:https://github.com/macrozheng/mall

安裝

通過Gitlab的CI/CD功能實現自動化部署,我們需要安裝Gitlab、Gitlab Runner、Maven這些服務。

安裝Gitlab

首先我們來安裝下Gitlab,對Gitlab安裝和使用不了解的朋友可以參考下《10分鐘搭建自己的Git倉庫》 。

使用如下命令運行Gitlab服務,這里需要注意的是添加了hostname屬性,這樣我們就可以通過域名來訪問Gitlab了(為了避免一些不必要的麻煩),GITLAB_ROOT_PASSWORD這個環(huán)境變量可以直接設置Gitlab中root賬號的密碼;

docker run --detach \
  --hostname git.macrozheng.com \
  --publish 10443:443 --publish 1080:80 --publish 1022:22 \
  --name gitlab \
  --restart always \
  --volume /mydata/gitlab/config:/etc/gitlab \
  --volume /mydata/gitlab/logs:/var/log/gitlab \
  --volume /mydata/gitlab/data:/var/opt/gitlab \
  -e GITLAB_ROOT_PASSWORD=12345678 \
  gitlab/gitlab-ce:latest

我們需要通過git.macrozheng.com這個域名來訪問Gitlab,如果你沒有域名的話,可以通過修改本機的host文件來實現;

192.168.7.134 git.macrozheng.com

由于我們的Gitlab運行在1080端口上,我們想要不加端口來訪問,可以使用Nginx來反向代理下,對Nginx不熟悉的朋友可以看下《Nginx的這些妙用,你肯定有不知道的!》 ,在Nginx的配置文件夾中添加git.conf配置文件,內容如下:

server {
    listen       80; # 同時支持HTTP
    server_name  git.macrozheng.com; #修改域名

    location / {
        proxy_pass   http://192.168.7.134:1080; # 設置代理服務訪問地址
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

之后我們就可以通過git.macrozheng.com這個域名來訪問Gitlab了,輸入賬號密碼root:12345678即可登錄;

Gitlab的CI/CD功能怎么用

將我們的SpringBoot應用代碼上傳到Gitlab上去,這樣Gitlab就準備完畢了!這里需要注意的是,如果你在啟動Gitlab的時候沒有指定hostname的話,你的項目HTTP訪問地址會是容器的ID,使用該地址會無法訪問Git倉庫!

Gitlab的CI/CD功能怎么用

安裝Gitlab Runner

Gitlab只是個代碼倉庫,想要實現CI/CD還需安裝gitlab-runner,gitlab-runner相當于Gitlab中任務的執(zhí)行器,Gitlab會在需要執(zhí)行任務時調用它。

首先下載gitlab-runner的Docker鏡像,選用alpine-bleeding,這個版本非常小巧!

docker pull gitlab/gitlab-runner:alpine-bleeding

使用如下命令運行gitlab-runner;

docker run --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/gitlab-runner:/etc/gitlab-runner \
-d gitlab/gitlab-runner:alpine-bleeding

此時我們如果查看gitlab-runner的容器日志的話,會發(fā)現如下錯誤,config.toml文件找不到,這個問題不必擔心,當我們將gitlab-runner注冊到Gitlab時,會自動生成該文件;

ERROR: Failed to load config stat /etc/gitlab-runner/config.toml: no such file or directory  builds=0

接下來我們需要把gitlab-runner注冊到Gitlab,打開Project->Settings->CI/CD功能,獲取到runner注冊需要使用的地址和token;

Gitlab的CI/CD功能怎么用

接下來使用如下命令,進入gitlab-runner容器的內部;

docker exec -it gitlab-runner /bin/bash

在容器內使用如下命令注冊runner;

gitlab-runner register

注冊時會出現交互界面,提示你輸入注冊地址、token、執(zhí)行器類型等信息,ssh執(zhí)行器能遠程執(zhí)行Linux命令,非常好用,推薦使用這個!

Gitlab的CI/CD功能怎么用

注冊完成后,我們可以發(fā)現config.toml文件已經生成,內容如下,以后想修改runner配置的時候,直接改這個文件就行了。

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-runner"
  url = "http://192.168.7.134:1080/"
  token = "c2kpV6tX6woL8TMxzBUN"
  executor = "ssh"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.ssh]
    user = "root"
    password = "123456"
    host = "192.168.7.134"
    port = "22"

在Gitlab的CI/CD設置中,我們可以發(fā)現,有個runner成功注冊了!

Gitlab的CI/CD功能怎么用

安裝Maven

SpringBoot項目打包需要依賴Maven,我們需要在服務器上先安裝好它。

下載Maven的Linux安裝包,下載地址:https://maven.apache.org/down...

Gitlab的CI/CD功能怎么用

下載完成后使用如下命令解壓到指定目錄;

cd /mydata
tar -zxvf apache-maven-3.8.1-bin.tar.gz

修改/etc/profile文件,添加環(huán)境變量配置:

export MAVEN_HOME=/mydata/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin

通過查看Maven版本來測試是否安裝成功。

mvn -v
Maven home: /mydata/apache-maven-3.8.1
Java version: 1.8.0_292, vendor: AdoptOpenJDK, runtime: /mydata/java/jdk1.8/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

安裝JDK

CentOS上默認安裝的是JRE,使用Maven需要安裝JDK。

下載JDK 8,下載地址:https://mirrors.tuna.tsinghua...

Gitlab的CI/CD功能怎么用

下載完成后將JDK解壓到指定目錄;

cd /mydata/java
tar -zxvf OpenJDK8U-jdk_x64_linux_xxx.tar.gz
mv OpenJDK8U-jdk_x64_linux_xxx.tar.gz jdk1.8

在/etc/profile文件中添加環(huán)境變量JAVA_HOME。

vi /etc/profile
# 在profile文件中添加
export JAVA_HOME=/mydata/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
# 使修改后的profile文件生效
. /etc/profile

使用

一切準備就緒,接下來通過Gitlab的CI/CD功能就可以實現SpringBoot應用的自動化部署了!

首先在項目的根目錄下添加.gitlab-ci.yml文件,定義了兩個任務,一個任務會將應用代碼打包成Jar包并復制到指定目錄,另一個任務會通過運行腳本run.sh打包應用的Docker鏡像并運行;

# 打包任務
build-job:
  stage: build
  # 指定標簽,只有具有該標簽的runner才會執(zhí)行
  tags:
    - docker
  script:
    # 使用Maven打包
    - mvn clean package
    # 將jar包、Dockerfile、運行腳本復制到指定目錄
    - cp target/mall-tiny-gitlab-1.0-SNAPSHOT.jar /mydata/build/mall-tiny-gitlab-1.0-SNAPSHOT.jar
    - cp Dockerfile /mydata/build/Dockerfile
    - cp run.sh /mydata/build/run.sh

# 部署任務
deploy-job:
  stage: deploy
  tags:
    - docker
  script:
    # 進入指定目錄并執(zhí)行運行腳本
    - cd /mydata/build
    - chmod +x run.sh
    - ./run.sh

這里值得一提的是,默認情況下runner只會執(zhí)行具有相同標簽的Job,由于我們對Job和runner都設置了標簽為docker,所以我們這里是可以執(zhí)行的。如果你沒有設置標簽的話,需要在runner的編輯界面設置下讓runner可以執(zhí)行沒有標簽的Job;

Gitlab的CI/CD功能怎么用

由于我們的gitlab-runner采用的是ssh的執(zhí)行器,它會登錄到我們指定的服務器,執(zhí)行我們在.gitlab-ci.yml中定義的script命令,在此之前還會先從Git倉庫中獲取代碼,所以我們還需修改下服務器上的host文件;

vim /etc/hosts
192.168.7.134 git.macrozheng.com

接下來就是要把腳本提交到Git倉庫上去,提交后會在Project->CI/CD->Pipelines中發(fā)現正在執(zhí)行的任務;

Gitlab的CI/CD功能怎么用

打開Pipeline的詳情頁面,可以發(fā)現我們定義的兩個任務都已經執(zhí)行成功了;

Gitlab的CI/CD功能怎么用

打開Job的詳情界面,我們可以看到任務執(zhí)行過程中輸出的日志信息;

Gitlab的CI/CD功能怎么用

如果你想手動執(zhí)行Pipeline,而不是提交觸發(fā)的話,可以在Pipelines頁面點擊Run Pipeline按鈕即可;

Gitlab的CI/CD功能怎么用

運行成功后,可以通過如下地址訪問項目:http://192.168.7.134:8088/swa...

Gitlab的CI/CD功能怎么用

以上是“Gitlab的CI/CD功能怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!


當前文章:Gitlab的CI/CD功能怎么用
文章來源:http://weahome.cn/article/poodci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部