CICD

寫在前面

參照文章:https://blog.csdn.net/liuge36/article/details/83055512
之前寫了比較完整的相關,但是發現,工作中只是需要用到以下簡單的點就可以了
總結簡單的自動化部署的項目的方法:

前置:

gitlab:做代碼託管 服務器A 公司服務器
gitlab-ci (Runner): 服務器B 安裝Docker 醫院服務器

01 爲項目註冊一個runner ,這個runner去git倉庫拉取代碼最新下來,做自動部署

開始執行註冊命令:gitlab-ci-multi-runner register
輸入gitlab服務器的地址: http://22.18.12.161:10088/
輸入token:某一個具體項目中》details>settings》ci/cd>runners:找到token碼   xxx

輸入runner的描述:默認或自定義
輸入tags: 比如:test,demo  我輸入的是:tnv2
回車
回車
這個時候,就是會看見succeeded
接下來,需要進行選擇runner執行操作的方式
比如:shell

02 當註冊好的runnner,被觸發了,它該具體做些什麼事情呢?

在HelloWorld》CI/CD》pipelines

通過.gitlab-ci.yml的文件去定義CI的pipelines

要想實現後端自動化部署,主要是通過本地代碼提交到master分支,
master分支變化去觸發CI/CD的自動化作業的執行。

這個自動化的作業其實就是 手寫的 .gitlab-ci.yml 文件的內容

stages:
  - deploy
docker-deploy:
  stage: deploy
  script: 
    - docker build -t tongnanimagesv2 .
    - if [ $(docker ps -aq --filter name=tnbackwebv2) ]; then docker stop tnbackwebv2;fi
    - if [ $(docker ps -aq --filter name=tnbackwebv2) ]; then docker rm tnbackwebv2;fi
    - docker run -d -p 8900:8900 --name tnbackwebv2 tongnanimagesv2
  tags:
    - tnv2 # tnv2是shell類型的runner

上面的job作業解釋:

# 這句話是使用當前目錄. 下的DockerFile進行image鏡像的構建
docker build -t tongnanimagesv2 . 

# 下面的兩句是做 檢測 指定的容器是否在運行狀態,有的話,先停止,再刪除
 - if [ $(docker ps -aq --filter name=tnbackwebv2) ]; then docker stop tnbackwebv2;fi
 - if [ $(docker ps -aq --filter name=tnbackwebv2) ]; then docker rm tnbackwebv2;fi
 
// 基於上面的語句,似乎可以在構建tongnanimagesv2鏡像之前,先刪除,刪除的條件就是之前如果存在,就刪除;
這裏不確定每次構建是否會覆蓋,如果不是覆蓋,那麼每次都創建,就會很多的鏡像(待驗證)
# 這裏話是運行創建的鏡像爲一個容器
 - docker run -d -p 8900:8900 --name tnbackwebv2 tongnanimagesv2
# tags=tnv2 這個是我們在爲項目註冊runner的時候,自定義的名稱(能夠到你的機器上執行shell)
  tags:
    - tnv2 # tnv2是shell類型的runner

# DockerFile
---------------
from frolvlad/alpine-oraclejdk8:slim 
VOLUME /tmp 
ADD target/test-0.0.1.jar app.jar 
ENTRYPOINT ["java","-jar","/app.jar"]
---------------

順便寫一下前端項目自動部署

  1. gitlab新建倉庫(或已有倉庫),找到倉庫的token,將其註冊到gitlab-ci-multi-runner register 下去

    得到 類型是shell ,名稱叫做tnfrontv2 的tages

  2. 在項目的本地新建.gitlab-ci.yml 文件

stages:
  - deploy
docker-deploy:
  stage: deploy
  script:
    - rm -rf /home/gitlab-runner/tnn/tn
    - cp -r ./dist /home/gitlab-runner/tnn/
    - mv /home/gitlab-runner/tnn/dist /home/gitlab-runner/tnn/tn
  tags:
    - tnfrontv2 # demo4是shell類型的runner

這個文件的位置在項目的根目錄下,注意.git倉庫文件也是在這個根目錄下。

上面只是最簡單的自動化部署,需要在本地生成部署包。其實,打包這步操作也是可以在服務器上完成的。但是這裏爲了簡便,本地直接打包上傳。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章