美文网首页Docker容器云计算
GitLab+Docker快速搭建CI/CD自动化部署

GitLab+Docker快速搭建CI/CD自动化部署

作者: fzkun | 来源:发表于2018-07-29 12:33 被阅读1304次
    一、准备工作
    • 1.1. gitlab环境
    • 1.2. 装有dockergitlab-runner环境的云服务器(这里用到CentOS 7 64位
    • 1.3. 项目代码
    • 1.4. Dockerfile
    • 1.5. .gitlab-ci.yml

    二、环境配置

    • 2.1. 为项目注册执行部署任务的Runner服务器
    • 2.2. 云服务器注册runner

    三、提交更新并自动部署到服务器,测试地址:http://182.61.57.121:8000

    • 3.1. 提交代码到git master分支
    • 3.2. 等待Job任务完成
    • 3.3 测试结果

    一、准备工作

    1. gitlab环境(为了方便,使用官方的托管仓库)

    2. 装有dockergitlab-runner环境的云服务器(这里用到CentOS 7 64位

    3. 项目代码,这里我使用Golang作为开发语言,其它开发语言也一样的操作流程

      代码.png
    4. Dockerfile文件

    # 镜像文件
    FROM golang:latest
    # 维修者
    MAINTAINER Razil "412657308@qq.com"
    
    # 镜像中项目路径
    WORKDIR $GOPATH/src/kun.com/cicd-demo
    # 拷贝当前目录代码到镜像
    COPY . $GOPATH/src/kun.com/cicd-demo
    # 制作镜像
    RUN go build .
    
    # 暴露端口
    EXPOSE 8000
    
    # 程序入口
    ENTRYPOINT ["./cicd-demo"]
    
    
    1. .gitlab-ci.yml文件,语法查看
    stages:
      - deploy
    
    docker-deploy:
      stage: deploy
      # 执行Job内容
      script:
        # 通过Dockerfile生成cicd-demo镜像
        - docker build -t cicd-demo .
        # 删除已经在运行的容器
        - if [ $(docker ps -aq --filter name= cicd-demo) ]; then docker rm -f cicd-demo;fi
        # 通过镜像启动容器,并把本机8000端口映射到容器8000端口
        - docker run -d -p 8000:8000 --name cicd-demo cicd-demo
      tags:
        # 执行Job的服务器
        - kun
      only:
        # 只有在master分支才会执行
        - master
    

    二、环境配置

    1. 为项目注册执行部署任务的Runner服务器

    因为我已经配置过了,所以下面面有runner,runner的标签是多runner执行任务时区分的标识,后面部署过程我会使用标签为kun而不是test服务器来执行job,下面会截图配置过程。

    1.gitlab设置runner.jpg

    2.云服务器注册runner

    2.服务器配置.png

    三、提交更新并自动部署到服务器

    runner注册成功后,通过git命令提交更新到master分支,只要master分支有修改,都会执行Job的任务。

    3.1.提交代码到git master分支.png
    3.2.等待Job任务完成.png 4.查看job执行任务过程.png

    此时,通过链接http://182.61.57.121:8000可以看到服务器已经部署代码并且可以正常访问了。

    4.测试结果.png

    扩展:通过践行GitFlow工作流常用操作流程,可以有一套方便且高效的系统持续集成方案。

    欢迎关注我的公众号kk工作室,了解更多技术博文。


    kk工作室

    相关文章

      网友评论

        本文标题:GitLab+Docker快速搭建CI/CD自动化部署

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