美文网首页「中级篇」docker践行devOps理念DockerDocker容器
『中级篇』docker之CI/CD持续集成-整个流程串联(75)

『中级篇』docker之CI/CD持续集成-整个流程串联(75)

作者: IT人故事会 | 来源:发表于2018-09-29 00:05 被阅读12次

    原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
    原文链接地址:『中级篇』docker之CI/CD持续集成-整个流程串联(75)

    前面主要说了CI python,CI java,CDpython,这次主要说下从gitlab,gitlab-ci,gitlab CICD的整个从开发流程到发布流程的,一个工作的流程。源码:https://github.com/limingios/docker/tree/master/No.11

    流程很重要,建议都演示下。

    • 设置下

    setting --Repositoryt ---Protected Branches

    allowed to push 改成 No one 任何人都不能直接往master分支里面push代码

    setting -- general ---Merge request
    刚才给master设置了任何都不能修改改变,那我们的流程应该如何改变呢,任何人只能在分支模式下工作,当发现没有问题可以提交到自己的分支,提交到merge request,管理员收到merge请求后,可以将开发人员自己的分支合并到master主分支上。

    • 创建一个新的分支dev 这个名字可以以每个人名字命名,一个人一个分支

    Repository -- Branches -- new Branches

    • 代码 pull 然后切换到dev分支

    已经在dev分支了。

    • 修改代码 提交代码 push到dev分支

    随便找个代码 修改下,看看这个流程

    • 提交后自动在dev分支pipline了
    • 发送merge请求

    先进行pipline然后才merge 。

    • 发现代码错误了。

    pipline 有问题,就不允许mege了,merge request 列表

    管理员这是告诉开发人员,你的代码有问题,开发人员开始修复代码重新提交。

    commit-push代码

    重新merge request

    • 之前的代码还有个问题

    现在任何的分支发生变化,它都进行了deploy,现在修改成只有master才进行deploy。

    增加了 only master 只有master 才进行deploy

    stages:
      - style
      - test
      - deploy
    
    pep8:
      stage: style
      script:
        - pip install tox
        - tox -e pep8
      tags:
        - python2.7
        
    unittest-py27:
       stage: test
       script:
         - pip install tox
         - tox -e py27
       tags:
         - python2.7
    
    unittest-py34:
       stage: test
       script:
         - pip install tox
         - tox -e py34
       tags:
         - python3/4
         
    docker-deploy:
       stage: deploy
       script:
         - docker build -t flask-demo .
         - if [ $( docker ps -aq --filter name=web) ]; then docker rm -f web;fi
         - docker run -d -p 5000:5000 --name web flask-demo
       tags:
         - test1
       only:
         - master
    
    • 可以正常的pipline后就可以merge了,master分支已经变化。master分支开始触发pipline。dev分支里面也没有deploy了

    PS:基本目前这种就是开发和测试,CICD的完整的流程。git的工作流,基于分支的工作流。部署到CI的服务器上。CD其实分几种情况,可能部署到生产的环境的机器,另外的一个单独系统,我们生产的环境的部署,一般情况是根据发布来部署的。今天这个基本是开发和测试,没有包括生产环境的。下次项目发布做部署,应该可以gitlab,gitlab-ci的什么流程


    往期精彩
    1. docker导学(一)
    2. 容器的技术概述(二)
    3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
    4. docker官网介绍(四)
    5. 如何在mac上安装docker(五)
    6. 如何在window上安装docker(六)
    7. 如何在mac上通过vagrant安装虚拟机(七)
    8. 如何在window上通过vagrant安装虚拟机(八)
    9. docker-Machine的本地使用(九)
    10. docker-Machine的本地使用(十)
    11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
    12. docker架构和底层技术(12)
    13. docker Image概述(13)
    14. 手动建立一个base Image(14)
    15. 什么是Container(15)
    16. 构建自己的Docker镜像(16)
    17. Dockerfile详解(17)
    18. 镜像的发布(18)
    19. Dockerfile实战(19)
    20. 容器的操作(20)
    21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
    22. 容器的资源限制(22)
    23. docker网络(23)
    24. docker学习必会网络基础(24)
    25. Linux网络命名空间(25)
    26. Docker Bridge详解(26)
    27. 容器之间的Link(27)
    28. 容器的端口映射(28)
    29. 容器网络之host和none(29)
    30. 多容器复杂应用的部署(30)
    31. overlay网络和etcd实现多机的容器通信(31)
    32. docker的数据持久化存储和数据共享(32)
    33. windows下vagrant 通过SecureCRT连接centos7(33)
    34. 数据持久化之Data Volume(34)
    35. 数据持久化之bind Mounting(35)
    36. docker 使用bind Mounting实战(36)
    37. docker容器安装wordpress(37)
    38. docker Compose到底是什么(38)
    39. Docker Compose的安装和基本使用(39)
    40. Docker 水平扩展和负载均衡(40)
    41. Docker compose 部署一个复杂的应用(41)
    42. 容器编排Docker Swarm介绍(42)
    43. docker-swarm创建一个多节点集群(43)
    44. play with docker 的使用(44)
    45. docker-swarm中的Service创建维护和水平扩展(45)
    46. 在docker-swarm集群里通过serivce部署wordpress(46)
    47. 集群服务间通信之RoutingMesh(47)
    48. RoutingMesh之Ingress负载均衡(48)
    49. Docker-Stack部署wordpress(49)
    50. Docker-Stack部署投票应用(50)
    51. Docker-Secret管理和使用(51)
    52. Docker service更新(52)
    53. Docker的收费模式(53)
    54. Docker-cloud介绍(54)
    55. Docker Cloud自动构建 Docker image(55)
    56. Docker企业版的在线免费体验(56)
    57. docker企业版本地安装之UCP(57)
    58. docker体验阿里云的容器服务(58)
    59. 阿里云安装Docker企业版UCP和DTR(59)
    60. Kubenetes简介(60)
    61. Minikube快速搭建K8S单节点环境(61)
    62. K8S最小调度单位Pod(62)
    63. K8S横向扩展功能ReplicaSet和ReplicationController(63)
    64. k8s重要的Deployment(64)
    65. Vagrant在本地搭建多节点K8S集群(65)
    66. k8s基础网络Cluster Network(66)
    67. k8s的Service简介和演示(67)
    68. k8s的NodePort类型Service以及Label的简单实用(68)
    69. CI/CD持续集成/持续部署(69)
    70. docker之CI/CD持续集成-gitlab安装(70)
    71. docker之CI/CD持续集成—GitLab CI服务器(71)
    72. docker之CI/CD持续集成—真实Python项目的CI演示(72)
    73. docker之CI/CD持续集成—真实JAVA-Maven项目的CI演示(73)
    74. docker之CI/CD持续集成-CD演示(74)

    相关文章

      网友评论

        本文标题:『中级篇』docker之CI/CD持续集成-整个流程串联(75)

        本文链接:https://www.haomeiwen.com/subject/rrmmwftx.html