前言:
在產品大前期的開發過程中,由於種種原因,導致程序一天中可能發布好些次,這無疑極大的浪費了咱們開發的寶貴時間。因此,出此篇文章,就是為了減少咱們開發把時間浪費非必要的地方,騰出更多的時間來處理更重要的技術難題
正文:
准備工作:
首先,咱們先在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 即可。
結束:
在工作中,學會不斷總結,才能讓我們的工作更加輕松,加油