gitlab实现cicd,git ci cd

  gitlab实现cicd,git ci cd

  最近发现Gitlab的CI/CD功能也可以实现自动部署,而且用起来还挺简单的!如果您使用Gitlab作为Git存储库,请尝试它的CI/CD功能。本文以SpringBoot的自动部署为例来实践Gitlab的CI/DI功能。

  SpringBoot实用电子商务项目商城(50k star)地址:https://github.com/macrozheng/mall

  

安装

  

安装Gitlab

  使用以下命令运行Gitlab服务。这里需要注意的是,增加了hostname属性,这样我们就可以通过域名访问Gitlab(避免一些不必要的麻烦)。环境变量GITLAB_ROOT_PASSWORD可以直接在GITLAB中设置ROOT帐号的密码;

  docker运行-分离\

  -主机名git.macrozheng.com \

  -发布10443:443 -发布1080:80 -发布1022:22 \

  -名称gitlab \

  -总是重启\

  -volume/my data/git lab/config:/etc/git lab \

  -volume/my data/git lab/logs:/var/log/git lab \

  -volume/my data/git lab/data:/var/opt/git lab \

  -e git lab _ ROOT _ PASSWORD=12345678 \

  Gitlab/gitlab-ce:最新我们需要通过git.macrozheng.com的域名访问Gitlab。如果没有域名,可以通过修改本机的主机文件来实现;

  162.168.7.134git.macrozheng.com因为我们的Gitlab运行在端口1080上,我们想在不添加端口的情况下访问它,所以我们可以使用Nginx进行反向代理。对Nginx不熟悉的朋友可以看看《Nginx的这些妙用,你肯定有不知道的!》,在Nginx的配置文件夹中添加git.conf配置文件,内容如下:

  服务器{

  听80;#也支持HTTP

  服务器名git.macrozheng.com;#修改域名

  位置/{

  proxy _ pass http://192 . 168 . 7 . 134:1080;#设置代理服务访问地址

  索引index.html index.htm;

  }

  error _ page 500 502 503 504/50x . html;

  location=/50x.html {

  root/usr/share/nginx/html;

  }

  }之后,我们可以通过git.macrozheng.com的域名访问Gitlab。输入账号密码root:12345678登录;

  如何解决写爬虫IP受阻的问题?立即使用。

  把我们的SpringBoot应用代码上传到Gitlab,这样Gitlab就准备好了!这里需要注意的是,如果在启动Gitlab的时候没有指定主机名,那么你的项目HTTP访问地址将是容器的ID,你将无法用这个地址访问Git仓库!

  

安装Gitlab Runner

  首先下载gitlab-runner的Docker图片,选择alpine-bleeding。这个版本很小!

  docker pull git lab/git lab-runner:Alpine-Bleeding使用以下命令运行git lab-runner;

  docker run-name git lab-runner-restart always \

  -v/var/run/docker . sock:/var/run/docker . sock \

  -v/my data/git lab-runner:/etc/git lab-runner \

  -d git lab/gitlab-runner:alpine-bleeding此时,如果我们查看git lab-runner的容器日志,会发现如下错误。找不到config.toml文件,所以不用担心这个问题。当我们向gitlab注册gitlab-runner时,会自动生成;

  错误:加载config stat/etc/Gitlab-runner/config . toml:没有这样的文件或目录buildings=0接下来,我们需要向git lab注册Gitlab-runner,打开Project-Settings-CI/CD函数,获取地址和token跑步者注册需要;

  接下来,使用以下命令进入gitlab-runner容器内部;

  docker exec-it git lab-runner/bin/bash用下面的命令在容器中注册运行器;

  gitlab-runner注册时会出现交互界面,提示输入注册地址、令牌、执行人类型等信息。ssh executor可以远程执行Linux命令,非常好用。推荐用这个!

  注册后,我们可以发现config.toml文件已经生成,内容如下。如果以后想修改runner的配置,直接修改这个文件就可以了。

  并发=1

  check_interval=0

  [会话服务器]

  会话超时=1800

  [[跑步者]]

  name=docker-runner

  url=http://192.168.7.134:1080/

  token=c2kpV6tX6woL8TMxzBUN

  执行者=嘘

  [runners.custom_build_dir]

  [runners.cache]

  [runners.cache.s3]

  [runners.cache.gcs]

  [runners.cache.azure]

  [runners.ssh]

  user=root

  密码=123456

  主机=192.168.7.134

  Port=22 在Gitlab的CI/CD设置中,我们可以发现有一个跑者成功注册了!

  

安装Maven

  从https://maven.apache.org/down.下载Maven的Linux安装包.

  下载后,使用以下命令解压到指定目录:

  cd /mydata

  tar-zxvf apache-maven-3.8.1-bin.tar.gz修改/etc/profile文件并添加环境变量配置:

  导出MAVEN _ HOME=/my data/Apache-MAVEN-3 . 8 . 1

  export path=$ path:$ Maven _ home/bin通过检查Maven版本来测试安装是否成功。

  mvn-VM aven home:/my data/Apache-maven-3 . 8 . 1

  Java版本:1.8.0_292,厂商:AdoptOpenJDK,运行时:/mydata/java/jdk1.8/jre

  默认区域设置:美国,平台编码:UTF-8

  OS: Linux ,版本: 3.10.0-957.el7.x86 _ 64 ,Arch: AMD64 ,家族: UNIX:

安装JDK

  下载JDK 8,下载地址:https://mirrors.tuna.tsinghua.

  下载后将JDK解压到指定目录;

  cd /mydata/java

  tar-zxvf open JDK 8 u-JDK _ x64 _ Linux _ XXX . tar . gz

  MV打开JDK8u-JDK _ x64 _ Linux _ XXX . tar . gzjdk 1.8在/etc/profile文件中添加环境变量JAVA_HOME。

  vi /etc/profile

  #在配置文件中添加

  导出JAVA_HOME=/mydata/java/jdk1.8

  导出路径=$PATH:$JAVA_HOME/bin

  #使修改后的配置文件生效。/etc/profile

使用

  。gitlab-ci.yml文件放在项目的根目录下,并定义两个任务。一个任务将应用程序代码打包成Jar包并复制到指定目录,另一个任务通过运行脚本run.sh将应用程序的Docker镜像打包并运行;

  #包任务

  构建作业:

  阶段:构建

  #指定标签,该标签将仅由具有该标签的runner执行。

  标签:

  -码头工人

  脚本:

  Maven套装

  - mvn清洁包装

  #将jar包、Dockerfile和运行脚本复制到指定目录。

  -CP target/mall-tiny-git lab-1.0-snapshot . jar/my data/build/mall-tiny-git lab-1.0-snapshot . jar

  -CP docker file/my data/build/docker file

  - cp run.sh /mydata/build/run.sh

  #部署任务

  部署-作业:

  阶段:部署

  标签:

  -码头工人

  脚本:

  #转到指定的目录并执行运行脚本。

  - cd /mydata/build

  - chmod x run.sh

  -./run.sh这里值得一提的是,默认情况下,runner只会执行标签相同的作业。因为我们为作业和运行者设置了标签docker,所以我们可以在这里执行它们。如果不设置标签,需要设置runner的编辑器接口,允许runner执行一个作业;没有标签;

  由于我们的Gitlab-runner使用ssh的执行器,它将登录到我们指定的服务器并执行。gitlab-ci.yml在此之前,它还会从git库获取代码,所以我们还是需要在服务器上修改主机文件。

  vim /etc/hosts

  192 . 168 . 7 . 134 git . macro Zheng . com下一步是将脚本提交到Git仓库。提交后,将在Project-CI/CD-Pipelines中找到正在执行的任务。

  打开Pipeline的详细页面,可以发现我们定义的两个任务已经成功执行;

  打开作业的详细界面,可以看到任务执行过程中输出的日志信息;

  如果要手动执行管道而不是提交触发器,可以单击“管道”页面上的“运行管道”按钮。

  操作成功后,您可以通过以下地址访问该项目:http://192.168.7.134:8088/swa。

  

总结

  如果你用Gitlab做Git库,用它的CI/CD功能实现自动部署真的很好!安装一个轻量级的gitlab-runner并编写一个简单的。gitlab-ci.yml脚本文件。其实我们之前介绍过很多种自动化部署方案,比如Jenkins,Gogs Drone,Gitlab CI/CD,可以发现一个共同点,都离不开Linux的命令。所以想玩自动化部署,还是要先玩Linux命令!

  相关视频教程推荐:Java视频教程以上是不使用Gitlab的CI/CD功能你会out的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: