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

1、准备工做
  • 1.1. gitlab环境
  • 1.2. 装有 dockergitlab-runner环境的云服务器(这里用到 CentOS764位
  • 1.3. 项目代码
  • 1.4. Dockerfile
  • 1.5. .gitlab-ci.yml

2、环境配置git

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

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

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

1、准备工做docker

  1. gitlab环境(为了方便,使用官方的托管仓库)
  2. 装有 dockergitlab-runner环境的云服务器(这里用到 CentOS764位
  3. 项目代码,这里我使用Golang做为开发语言,其它开发语言也同样的操做流程代码.png
  1. 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复制代码

2、环境配置segmentfault

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

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

2.云服务器注册runner

2.服务器配置.png

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

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

3.1.提交代码到git master分支.png 3.2.等待Job任务完成.png

4.查看job执行任务过程.png

此时,经过连接http://182.61.57.121:8000能够看到服务器已经部署代码而且能够正常访问了。 4.测试结果.png测试

扩展:经过践行GitFlow工做流经常使用操做流程,能够有一套方便且高效的系统持续集成方案。ui


欢迎关注个人公众号kk工做室,了解更多技术博文。spa

  kk工做室

相关文章
相关标签/搜索