基于Gitlab Runner 快速实现 Gitlab 自动部署

本文介绍了如何借助GitlabCI/CD和Docker实现项目的自动部署。首先,需要安装Docker、Gitlab及GitlabRunner。接着,注册GitlabRunner并配置相关脚本,如`.gitlab-ci.yml`文件,用于定义构建和部署流程。当代码提交后,Gitlab会自动触发构建和部署。最后,通过访问应用验证自动部署的成功。
摘要由CSDN通过智能技术生成

前言

部署是一件重复且无聊的事情,相信大家都听说过 CI/CD 持续集成和持续交付吧。本文基于Gitlab CI/CD及Docker快速实现项目的自动部署。该方案能与Git紧密结合且不需要额外的工具即可实现代码提交后自动构建及部署。

准备工作

首先请安装好以下三个软件,建议安顺序安装,软件的安装请参考下方给的参考链接:

  1. Docker:安装教程
  2. Gitlab:安装教程
  3. GitlabRunner:安装教程

主要流程

我们的主要流程就是通过Gitlab管理代码,然后利用Gitlab自带的Gitlab CI/CD功能与GitlabRunner进行注册绑定。绑定成功后,每提交一次代码,都可以触发GitlabRunner,从而执行相应的脚本程序实现自动部署。
在这里插入图片描述

GitlabRunner 注册

  1. 打开Gitlab种需要自动部署的仓库,选择Setting-》CI / CD -》Runners。
    在这里插入图片描述
  2. 如下图,可以看到最关键的两个信息,这俩待会GitlabRunner注册的时候会用到,请记好:
    在这里插入图片描述
  3. GitlabRunner注册
    命令指南:gitlab-runner register注册,gitlab-runner list查看已注册Runner,gitlab-runner unregister --all-runners取消所有注册。
    首先我们先注册一个,然后起一个Runner的名字(随便),这里我取名:hello,spring boot!,然后输入runner的tags,我们一个项目可以通过tags区分不同阶段让不同的runner执行,这里输入:maven;最后输入你想执行的脚本,这里用shell。
    在这里插入图片描述
    注册成功后,我们来刷新一下刚刚Gitlab的页面,可以看到已经注册成功了!
    在这里插入图片描述

制作脚本

当提交代码后,我们应该怎么用Shell脚本来控制构建和部署呢?Gitlab为我们提供好了一个模版,就是在仓库根目录下创建名为:.gitlab-ci.yml 文件,我这里执行一个SpringBoot项目,所以内容如下:

stages:
  - build
  - deploy_test
#  - clean
# 打包镜像
build:
  stage: build
  only:
    - master
  script:
    - $MAVEN_HOME/bin/mvn clean package -U '-Dmaven.test.skip=true'
    - cp target/GitlabRunnerTest-0.0.1-SNAPSHOT.jar docker/
    - cd docker
    - docker build -t test/gitlabrunner:v1.0.0 .
  tags:
    - maven
# 部署测试服务器
deploy_test:
  stage: deploy_test
  only:
    - master
  script:
    - cd docker
    - docker-compose down
    - docker-compose up -d
  tags:
    - maven
#清理虚悬镜像
#clean:
#  stage: clean
#  only:
#    - master
#  script:
#    - docker rmi $(docker images -q -f dangling=true)
#  tags:
#    - maven

然后在根目录中创建Docker文件夹,创建Dockerfile:

FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

创建docker-compose.yml

version: '3.1'
services:
  education-course:
    container_name: test-gitlabrunner
    restart: always
    image: test/gitlabrunner:v1.0.0
    network_mode: "host"
    command: java -jar -Xms1024m -Xmx1024m -Duser.timezone=GMT+08 GitlabRunnerTest-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

整体项目目录结构如下所示:
在这里插入图片描述

验证

做好之后,我们就可以上传代码了,然后我们可以在CI / CD种的Pipelines里查看执行是否成功。
在这里插入图片描述
可以看到,构建成功了,我们来访问一下:
在这里插入图片描述
恭喜你,已经成功部署。你可以尝试在代码中修改GIt提交,来查看自动部署的效果。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用 Helm Chart 来部署 GitLab Runner 到 Kubernetes 集群中。下面是部署步骤: 1. 安装 Helm 如果你还没有安装 Helm,请先安装它。可以参考官方文档:https://helm.sh/docs/intro/install/ 2. 添加 GitLab Runner Helm Chart 仓库 使用以下命令添加 GitLab Runner Helm Chart 仓库: ``` helm repo add gitlab https://charts.gitlab.io helm repo update ``` 3. 部署 GitLab Runner 使用以下命令部署 GitLab Runner: ``` helm install gitlab-runner gitlab/gitlab-runner \ --set runners.token=<RUNNER REGISTRATION TOKEN> \ --set runners.cache.cacheType=s3 \ --set runners.cache.s3ServerAddress=<S3 SERVER ADDRESS> \ --set runners.cache.s3BucketName=<S3 BUCKET NAME> \ --set runners.cache.s3AccessKey=<S3 ACCESS KEY> \ --set runners.cache.s3SecretKey=<S3 SECRET KEY> ``` 其中,`<RUNNER REGISTRATION TOKEN>` 是 GitLab 项目设置中创建的 runner token,`<S3 SERVER ADDRESS>` 是用于存储 GitLab Runner 缓存的 S3 服务器地址,`<S3 BUCKET NAME>` 是存储缓存的 S3 桶名称,`<S3 ACCESS KEY>` 和 `<S3 SECRET KEY>` 是 S3 访问密钥。 注意:如果不想使用 S3 作为 GitLab Runner 的缓存存储,可以省略上述命令中与缓存相关的参数。 4. 验证部署 使用以下命令验证 GitLab Runner 是否成功部署: ``` kubectl get pods -l app=gitlab-runner ``` 如果输出类似于下面的内容,则说明 GitLab Runner 成功部署: ``` NAME READY STATUS RESTARTS AGE gitlab-runner-7ccf9d6f9c-8f2c2 1/1 Running 0 1m ``` 至此,GitLab Runner 已经成功部署到了 Kubernetes 集群中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比特桃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值