zoukankan      html  css  js  c++  java
  • 3分钟学会怎样把NetCore程序用gitlab的CICD部署到docker中

    我的部署环境

    1. 程序准备

    程序我已放到gitee中,地址https://gitee.com/CRole/gitlab-cicd.git,

    1.1 .gitlab-ci.yml文件

    stages: # 分段
      - build
      - clear
      - run
    
    # 定义 job
    build:
      stage: build
      script:
        - pwd
        - cd CICD/
        - docker build -f ./CICD/Dockerfile -t testcicd .
      when: always #不管前面几步成功与否,永远会执行这一步。它有几个值:on_success (默认值)on_failurealwaysmanual(手动执行)
    
    clear:
      stage: clear
      script:
        - if [ $( docker ps -aq --filter name=testcicd) ]; then docker rm -f testcicd;fi  #停止并删除原有镜像
        - docker system prune -f
      when: on_success
    
    run:
      stage: run
      script:
        - docker run  -p 8080:80 --name testcicd -d testcicd:latest
      when: on_success
    

    2. GitLab Runner注册

      runner我是放在了windows服务器上,这台机器是可以通过ssh直接连接到部署机器上的。

    首选定位到gitlab-runner.exe所在目录, 然后执行以下命令

    .gitlab-runner register
    
    .gitlab-runner run
    

    需要按照步骤输入:

    1. 输入gitlab的服务URL,这个使用的是https://gitlab.com/
    2. 输入gitlab-ci的Toekn,获取方式参考上图
    3. 关于集成服务中对于这个runner的描述
    4. 给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
    5. 是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
    6. 是否锁定runner到当前项目
    7. 选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,详情可见GitLab Runner Executors,这里选用ssh模式

     

      说明:    选择runner 执行者类型的时候,这里我们选择的是 ssh,因为我们需要通过ssh连接到部署机器上, 这里你要根据你自身的情况去选择, 常用的有shell, docker,docker-ssh等。 我一开始就是选择的shell,一直想着在脚本里面通过ssh命令去连接服务器了,掉进了坑里!!!

    还有一点需要注意的是这个选项,代表指示此运行程序是否可以拾取没有tag的作业,我们一开始可能不需要那么严格, 所以这里需要选中,默认是不选中的。

    3. 结果

    这个时候提交个代码看看。可以看到已经顺利执行了。 

     

     4. 总结

      在流水线中我们可以定义很多job,基本上centos 的命令都可以在job中使用,这样我们就可以做很多东西了, 比如写个python脚本放里面, 通过Job执行,一提交代码给自己发个邮件, 一提交代码关个机啥的! !

    喜欢的朋友请帮忙点个赞!!!
  • 相关阅读:
    强化学习
    详解a标签中href=""的几种用法 锚点
    使用Django自带的登录访问限制login_required
    ValueError: invalid literal for int() with base 10: ''
    Django 中创建Model时报以下错误: TypeError: init() missing 1 required positional argument: ‘on_delete’
    bootstrp实现同一界面多个模态框
    第十二章 Django框架开发
    Python format 格式化函数
    Python3.x在django中如何设置Content-Disposition,才能让浏览器正确保存中文命名的文件?
    python中的*和**参数传递机制
  • 原文地址:https://www.cnblogs.com/mchuang/p/14970921.html
Copyright © 2011-2022 走看看