91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Gitlab的CI/CD功能怎么用

發布時間:2021-09-05 16:54:21 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

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

SpringBoot實戰電商項目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這個環境變量可以直接設置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中任務的執行器,Gitlab會在需要執行任務時調用它。

首先下載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的容器日志的話,會發現如下錯誤,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、執行器類型等信息,ssh執行器能遠程執行Linux命令,非常好用,推薦使用這個!

Gitlab的CI/CD功能怎么用

注冊完成后,我們可以發現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設置中,我們可以發現,有個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文件,添加環境變量配置:

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文件中添加環境變量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才會執行
  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:
    # 進入指定目錄并執行運行腳本
    - cd /mydata/build
    - chmod +x run.sh
    - ./run.sh

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

Gitlab的CI/CD功能怎么用

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

vim /etc/hosts
192.168.7.134 git.macrozheng.com

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

Gitlab的CI/CD功能怎么用

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

Gitlab的CI/CD功能怎么用

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

Gitlab的CI/CD功能怎么用

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

Gitlab的CI/CD功能怎么用

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

Gitlab的CI/CD功能怎么用

以上是“Gitlab的CI/CD功能怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

象山县| 沾益县| 珲春市| 垫江县| 香港| 资兴市| 金沙县| 安庆市| 应城市| 武强县| 嘉禾县| 景东| 宁都县| 英吉沙县| 方城县| 苗栗市| 南安市| 南澳县| 岚皋县| 临泽县| 铁岭县| 五莲县| 巴南区| 镇雄县| 普安县| 黄石市| 英德市| 那曲县| 武冈市| 平原县| 紫云| 兴仁县| 泰州市| 灵武市| 大渡口区| 桃源县| 西青区| 竹溪县| 女性| 栖霞市| 甘肃省|