记录使用gitlab实现Docker自动化部署

编程入门 行业动态 更新时间:2024-10-26 15:28:22

记录使用<a href=https://www.elefans.com/category/jswz/34/1770931.html style=gitlab实现Docker自动化部署"/>

记录使用gitlab实现Docker自动化部署

目录

前言

一、gitlab-runner docker安装

二、gitlab-runner的注册与使用

1.注册

2. .gitlab-ci.yml 脚本编写

总结


前言

前面搭建了gitlab与harbor ,现在就使用它们来实现自动化docker部署。所谓自动化部署,就是提交代码到指定分支时自动触发预先写好的脚本,来实现打包,推送镜像。想要实现这个功能还需要安装gitlab-runner,下面就是记录相关步骤的流程。

一、gitlab-runner docker安装

这里仍然是docker-compose的形式来安装,内容如下:

version: "3"
services:gitlab-runner:image: "gitlab/gitlab-runner:latest"container_name: gitlab-runnerrestart: alwaysprivileged: truevolumes:- "./data/gitlab-runner/config:/etc/gitlab-runner"- "/var/run/docker.sock:/var/run/docker.sock"

重点:这里将内部的docker 挂载出来的路劲一定是虚机中安装的docker路径,因为要在内部调用外部的docker来执行命令,如果不匹配就无法调用。

在docker-compose.yml 文件夹内执行安装命令后等待安装完成就可以了

二、gitlab-runner的注册与使用

1.注册

注册也是很简单,下面提供代码,在安装gitlab-runner的虚拟机中执行
 

sudo docker exec gitlab-runner gitlab-runner register -n \--url http://192.168.31.8:15482/ \           #gitlab 的ip端口--registration-token APRduxxLs6qye_A_K47y \  # gitlab 上的token--tag-list "global-runner,gitlab-test" \--executor docker \--docker-image docker \--docker-image alpine:latest \--docker-volumes /home/msq/gitlab-runner/.m2:/root/.m2 \--docker-volumes /home/msq/gitlab-runner/.npm:/root/.npm \--docker-volumes /var/run/docker.sock:/var/run/docker.sock \ #挂载出来的docker--description "global-runner,gitlab-test"

 执行之后这里多出绿色圆点在线,表示注册成功 了,gloabl-runner ,gitlab-test 表示tag 标签,只有用到该标签的脚本才会执行

2. .gitlab-ci.yml 脚本编写

该脚本我们可以在gitlab 项目下进入CI/CD 的编辑器,选择分支,点击配置就会自动创建

这是我的,我是配置在test分支上 

在这里我们可以编辑脚本,也可以点击浏览模板进入github上学习官方的一些模板

我这里的脚本如下:

image: docker:stable
variables:TAG: wxdt:0.0.1PROJECT_NAME: wxdtMAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository"
cache:key: dockerlayer-ci-cachepaths:- .m2/repository- /target/wxdt.jar
stages:- package- deploy- push-image
maven-package:image: maven:3.5-jdk-8-alpinestage: packagetags:- gitlab-testscript:- mvn clean package -Dmaven.test.skip=true -P test $MAVEN_OPTS --settings=/root/.m2/settings.xmlcache:key: dockerlayer-ci-cachepaths:- target/*.jaronly:- test
build-test:stage: deploytags:- gitlab-testcache:key: dockerlayer-ci-cachepaths:- .m2/repository/- target/*.jar script:- docker build -t $TAG .- docker rm -f $PROJECT_NAME || true- docker run -d --name $PROJECT_NAME --restart=always -v /home/msq/公共/msq/logs/wxdt:/logs -p 18082:18082 $TAGafter_script:- docker rmi $(docker images -f "dangling=true" -q)  only:- test
docker-push:stage: push-imagetags: - gitlab-testbefore_script:- docker login http://192.168.31.22 -u admin -p Harbor12345  script: - docker tag $TAG 192.168.31.22/msq/$TAG- docker push 192.168.31.22/msq/$TAGonly: - test

简单说明一下,我这里是三个步骤,maven打包 --》docker 启动 --》镜像推送仓库

脚本执行的页面如下:

 点击进入可以看到执行日志

 推送成功后我们到仓库中看到,下面就是推送成功了

 项目是否执行成功进入虚机中执行docker ps 查看

 可以看到项目在docker中运行成功了,可查看日志docker logs -f wxdt

 


总结

兴趣是学习的最好的动力,再接再厉,继续深入研究。

更多推荐

记录使用gitlab实现Docker自动化部署

本文发布于:2024-03-12 05:03:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730755.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:gitlab   Docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!