一、准备工作
1.1. gitlab环境
1.2. 装有
docker
和gitlab-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 测试结果
一、准备工作
装有
docker
和gitlab-runner
环境的云服务器(这里用到CentOS 7 64位
)项目代码,这里我使用Golang作为开发语言,其它开发语言也一样的操作流程
代码.png
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"]
.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
作者:IT科技互联
链接:https://www.jianshu.com/p/c398509f8861