美文网首页.NET
gitlab自动化部署

gitlab自动化部署

作者: Carson_jz | 来源:发表于2020-04-14 10:34 被阅读0次

    轻量级自动化部署方式,采用gitlab原有组件runner完成自动化部署,抛弃臃肿的jenkins,全程基于docker-in-docker模式,无需像传统部署那样安装额外环境来打包发布,当然效率上较差于传统的部署方式。

    安装jenkins

    这个不多说,中文版的 gitlab

    安装Runner

    docker run -d --name gitlab-runner --restart always \
      -v /runner/gitlab-runner/config:/etc/gitlab-runner \
      -v /var/run/docker.sock:/var/run/docker.sock \
      gitlab/gitlab-runner:latest
    

    配置启动Runner

    docker exec -it gitlab-runner gitlab-runner register -n \
    --url http://192.168.101.136:30859 \
    --registration-token 6dv_3yytXBEUbxBBY2Ec  \
    --tag-list=c#   \
    --description "project_build_runner"   \
    --docker-image "mengzyou/docker:19.03" \
    --docker-privileged=true   \
    --docker-pull-policy="if-not-present"  \
    --docker-volumes /var/run/docker.sock:/var/run/docker.sock   \
    --docker-volumes /opt/data/gitlab-runner/.m2:/root/.m2   \
    --executor docker
    

    ++注意++

    • docker-privileged=true 这个要设置为true,否则docker-in-docker模式失效
    • tag-list 是和你自动化部署项目匹配的标识,可配置多个,逗号隔开
    • url/registration-token 在你项目设置的CI/CD里有,如下图
    image.png

    如果正确部署完该Runner会跟你项目绑定

    image.png

    .gitlab-ci.yml编写

    yml语法官方文档

    stages:
      - test_build
      - official_build
    
    test_build:
      stage: test_build
      image: docker:stable
      services:
        - docker:dind
      tags:  
        - c#  //这个要和你配置的tag-list存在这个标签
      only:
        - test //只允许test分支执行这个模块代码
      script:
        - docker stop websocket_test || exit_code=$?
        - docker build -t websocket:test .
        - docker run -d --rm --name websocket_test -p 8001:80 -t websocket:test
    
    official_build:
      stage: official_build
      tags:  
        - c#
      only:
        - master
      script:
        - docker build -t websocket:$CI_PIPELINE_ID .
        - docker push image // 这个推送到你自己的镜像库
    

    完成!

    image.png

    相关文章

      网友评论

        本文标题:gitlab自动化部署

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