在GitLab上使用CI/CD 實現程序自動化部署


前言:

  在產品大前期的開發過程中,由於種種原因,導致程序一天中可能發布好些次,這無疑極大的浪費了咱們開發的寶貴時間。因此,出此篇文章,就是為了減少咱們開發把時間浪費非必要的地方,騰出更多的時間來處理更重要的技術難題

正文:

准備工作:

首先,咱們先在GitLab上准備新建一個 演示的項目,操作步驟如下:

 

 接下來,咱們就進入項目,然后進行設置

 

 點擊之后,進入到如下界面,然后咱們可以看到2、3步驟的URL以及令牌,這個就是咱們等下要使用的

 

 然后,咱們通過Xshell連接到服務器 192.168.217.129(這個是我前幾期的文章中,裝的虛擬機服務器),通過輸入如下命令來配置,如果遇到gitlab-runner在服務器上找不到,請先移步到我的《在CentOS上安裝GitLab-CI以及運行Runner的方法步驟》查看安裝步驟:

docker exec -it gitlab-runner gitlab-runner register

 

按照如下步驟進行1,2,3,4 其中到3,4步驟時,可以不輸入任何內容,直接回車即可。

 以上步驟做完之后,咱們再回到上一個頁面進行刷新看看效果,這時,runner下面已經存在一個可用的了,剩下的工作就是配置,咱們繼續往下走。

接下來,咱們轉換到項目中,在項目中,創建Dockerfile文件

在彈出的文件選項中,目標選擇Linux。

 

 然后咱們就開始配置Dockerfile文件的內容,最終效果如下:

 上面涉及到的nuget.config 配置文件內容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Nuget" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>  

以上是配置項目用到的nuget包的地址,使用自動生成時,會去尋找nuget引用的包。如果項目中,有使用到自己公司的nuget包,則繼續在nuget.config 文件中增加公司的nuget地址節點即可。

然后自動化發布,還需要使用到docker-compose.yml配置文件,貼上配置信息  

version: "3.6"

services:

  webapi-service:
    build: .
    container_name: microservice_webapi-service #指定啟動的容器名稱
    ports:
      - "8031:8031" #端口映射
    environment:
      - ASPNETCORE_URLS=http://*:8031
      - workid=1
      - eureka:instance:ipAddress=192.168.1.110 #服務器的地址
      - eureka:instance:port=8031
    extra_hosts:
      - "eureka1:192.168.1.111"
      - "eureka2:192.168.1.111"
      - "eureka3:192.168.1.111"
      - "service-apollo-meta-server-prod.sre:192.168.1.111"
    volumes:
      - /usr/MicroService/log/webapi-service:/app/Log4net  

 

最后一步,添加.gitlab-ci.yml

 

 

貼上.gitlab-ci.yml 源代碼:

.template: &onlyMaster  # 創建一個錨,指定只有提交到master分支才執行ci
  only:
    - master

# 設置兩個階段,build和deploy
stages:
  - build
  - deploy
    
build_image:
  stage: build #指定哪個階段
  <<: *onlyMaster #使用錨
  script: #執行腳本
    - docker-compose build
  
deploy:
  stage: deploy
  <<: *onlyMaster
  script:
    - docker-compose up -d

 添加完成,提示如下,表示咱們的配置是有效的

 

最后切換到項目,查看流水線。

 

 

出現如下效果,就表示咱們已經大功告成了。再也不同為了每次發包浪費太多的時間了

 

 

 以后咱們就直接在自己的電腦上,拉取代碼git pull ,提交代碼 git push 即可。

結束:

  在工作中,學會不斷總結,才能讓我們的工作更加輕松,加油


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM