久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      再不用Gitlab的CI/CD功能,你就out了

      最近發(fā)現(xiàn)Gitlab的CI/CD功能也能實(shí)現(xiàn)自動(dòng)化部署,用起來(lái)也挺簡(jiǎn)單!如果你使用的是Gitlab作為Git倉(cāng)庫(kù)的話,不妨試試它的CI/CD功能。本文還是以SpringBoot的自動(dòng)化部署為例,實(shí)踐下Gitlab的CI/DI功能。

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

      安裝

      通過(guò)Gitlab的CI/CD功能實(shí)現(xiàn)自動(dòng)化部署,我們需要安裝Gitlab、Gitlab Runner、Maven這些服務(wù)。

      安裝Gitlab

      首先我們來(lái)安裝下Gitlab,對(duì)Gitlab安裝和使用不了解的朋友可以參考下《10分鐘搭建自己的Git倉(cāng)庫(kù)》 。

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

      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

      我們需要通過(guò)git.macrozheng.com這個(gè)域名來(lái)訪問(wèn)Gitlab,如果你沒有域名的話,可以通過(guò)修改本機(jī)的host文件來(lái)實(shí)現(xiàn);

      192.168.7.134 git.macrozheng.com

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

      server {     listen       80; # 同時(shí)支持HTTP     server_name  git.macrozheng.com; #修改域名      location / {         proxy_pass   http://192.168.7.134:1080; # 設(shè)置代理服務(wù)訪問(wèn)地址         index  index.html index.htm;     }      error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/nginx/html;     } }

      之后我們就可以通過(guò)git.macrozheng.com這個(gè)域名來(lái)訪問(wèn)Gitlab了,輸入賬號(hào)密碼root:12345678即可登錄;

      再不用Gitlab的CI/CD功能,你就out了

      將我們的SpringBoot應(yīng)用代碼上傳到Gitlab上去,這樣Gitlab就準(zhǔn)備完畢了!這里需要注意的是,如果你在啟動(dòng)Gitlab的時(shí)候沒有指定hostname的話,你的項(xiàng)目HTTP訪問(wèn)地址會(huì)是容器的ID,使用該地址會(huì)無(wú)法訪問(wèn)Git倉(cāng)庫(kù)!

      再不用Gitlab的CI/CD功能,你就out了

      安裝Gitlab Runner

      Gitlab只是個(gè)代碼倉(cāng)庫(kù),想要實(shí)現(xiàn)CI/CD還需安裝gitlab-runner,gitlab-runner相當(dāng)于Gitlab中任務(wù)的執(zhí)行器,Gitlab會(huì)在需要執(zhí)行任務(wù)時(shí)調(diào)用它。

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

      docker pull gitlab/gitlab-runner:alpine-bleeding

      使用如下命令運(yùn)行g(shù)itlab-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

      此時(shí)我們?nèi)绻榭磄itlab-runner的容器日志的話,會(huì)發(fā)現(xiàn)如下錯(cuò)誤,config.toml文件找不到,這個(gè)問(wèn)題不必?fù)?dān)心,當(dāng)我們將gitlab-runner注冊(cè)到Gitlab時(shí),會(huì)自動(dòng)生成該文件;

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

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

      再不用Gitlab的CI/CD功能,你就out了

      接下來(lái)使用如下命令,進(jìn)入gitlab-runner容器的內(nèi)部;

      docker exec -it gitlab-runner /bin/bash

      在容器內(nèi)使用如下命令注冊(cè)runner;

      gitlab-runner register

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

      再不用Gitlab的CI/CD功能,你就out了

      注冊(cè)完成后,我們可以發(fā)現(xiàn)config.toml文件已經(jīng)生成,內(nèi)容如下,以后想修改runner配置的時(shí)候,直接改這個(gè)文件就行了。

      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設(shè)置中,我們可以發(fā)現(xiàn),有個(gè)runner成功注冊(cè)了!

      再不用Gitlab的CI/CD功能,你就out了

      安裝Maven

      SpringBoot項(xiàng)目打包需要依賴Maven,我們需要在服務(wù)器上先安裝好它。

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

      再不用Gitlab的CI/CD功能,你就out了

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

      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

      通過(guò)查看Maven版本來(lái)測(cè)試是否安裝成功。

      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上默認(rèn)安裝的是JRE,使用Maven需要安裝JDK。

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

      再不用Gitlab的CI/CD功能,你就out了

      下載完成后將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

      使用

      一切準(zhǔn)備就緒,接下來(lái)通過(guò)Gitlab的CI/CD功能就可以實(shí)現(xiàn)SpringBoot應(yīng)用的自動(dòng)化部署了!

      首先在項(xiàng)目的根目錄下添加.gitlab-ci.yml文件,定義了兩個(gè)任務(wù),一個(gè)任務(wù)會(huì)將應(yīng)用代碼打包成Jar包并復(fù)制到指定目錄,另一個(gè)任務(wù)會(huì)通過(guò)運(yùn)行腳本run.sh打包應(yīng)用的Docker鏡像并運(yùn)行;

      # 打包任務(wù) build-job:   stage: build   # 指定標(biāo)簽,只有具有該標(biāo)簽的runner才會(huì)執(zhí)行   tags:     - docker   script:     # 使用Maven打包     - mvn clean package     # 將jar包、Dockerfile、運(yùn)行腳本復(fù)制到指定目錄     - 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  # 部署任務(wù) deploy-job:   stage: deploy   tags:     - docker   script:     # 進(jìn)入指定目錄并執(zhí)行運(yùn)行腳本     - cd /mydata/build     - chmod +x run.sh     - ./run.sh

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

      再不用Gitlab的CI/CD功能,你就out了

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

      vim /etc/hosts 192.168.7.134 git.macrozheng.com

      接下來(lái)就是要把腳本提交到Git倉(cāng)庫(kù)上去,提交后會(huì)在Project->CI/CD->Pipelines中發(fā)現(xiàn)正在執(zhí)行的任務(wù);

      再不用Gitlab的CI/CD功能,你就out了

      打開Pipeline的詳情頁(yè)面,可以發(fā)現(xiàn)我們定義的兩個(gè)任務(wù)都已經(jīng)執(zhí)行成功了;

      再不用Gitlab的CI/CD功能,你就out了

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

      再不用Gitlab的CI/CD功能,你就out了

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

      再不用Gitlab的CI/CD功能,你就out了

      運(yùn)行成功后,可以通過(guò)如下地址訪問(wèn)項(xiàng)目:http://192.168.7.134:8088/swa…

      再不用Gitlab的CI/CD功能,你就out了

      總結(jié)

      如果你用Gitlab作為Git倉(cāng)庫(kù)的話,使用它的CI/CD功能來(lái)實(shí)現(xiàn)自動(dòng)化部署確實(shí)很不錯(cuò)!安裝一個(gè)輕量級(jí)gitlab-runner,編寫簡(jiǎn)單的.gitlab-ci.yml腳本文件即可實(shí)現(xiàn)。其實(shí)我們之前以及介紹過(guò)很多種自動(dòng)化部署方案,比如Jenkins、Gogs+Drone、Gitlab CI/CD,我們可以發(fā)現(xiàn)一個(gè)共同點(diǎn),這些方案都離不開Linux命令。 所以說(shuō)要想玩轉(zhuǎn)自動(dòng)化部署,還是得先玩轉(zhuǎn)Linux命令!

      相關(guān)視頻教程推薦:Java視頻教程

      贊(3)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)