zoukankan      html  css  js  c++  java
  • 在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 即可。

    结束:

      在工作中,学会不断总结,才能让我们的工作更加轻松,加油

  • 相关阅读:
    hdu2222 AC自动机入门
    bzoj1095: [ZJOI2007]Hide 捉迷藏 动态点分治学习
    【NOI2014】起床困难综合症 贪心
    bzoj1822: [JSOI2010]Frozen Nova 冷冻波网络流
    洛谷3767 膜法 带权并查集+分治
    NOI2015品酒大会 后缀数组
    NOI2015程序自动分析 并查集
    NOI2015软件包管理器 树剖线段树
    51nod1244 欧拉函数之和 杜教筛
    51nod1244 莫比乌斯函数之和 杜教筛
  • 原文地址:https://www.cnblogs.com/yuyoho/p/13273794.html
Copyright © 2011-2022 走看看