记录使用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-runner
    restart: always
    privileged: true
    volumes:
      - "./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"

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

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

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

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

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

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

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

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

我这里的脚本如下:

image: docker:stable
variables:
  TAG: wxdt:0.0.1
  PROJECT_NAME: wxdt
  MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository"
cache:
  key: dockerlayer-ci-cache
  paths:
    - .m2/repository
    - /target/wxdt.jar
stages:
  - package
  - deploy
  - push-image
maven-package:
  image: maven:3.5-jdk-8-alpine
  stage: package
  tags:
    - gitlab-test
  script:
    - mvn clean package -Dmaven.test.skip=true -P test $MAVEN_OPTS --settings=/root/.m2/settings.xml
  cache:
    key: dockerlayer-ci-cache
    paths:
      - target/*.jar
  only:
    - test
build-test:
  stage: deploy
  tags:
    - gitlab-test
  cache:
    key: dockerlayer-ci-cache
    paths:
      - .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 $TAG
  after_script:
    - docker rmi $(docker images -f "dangling=true" -q)  
  only:
    - test
docker-push:
  stage: push-image
  tags: 
    - gitlab-test
  before_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/$TAG
  only: 
    - test






    

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

脚本执行的页面如下:

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

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

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

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

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

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

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

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

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

 


总结

兴趣是学习的最好的动力,再接再厉,继续深入研究。文章来源地址https://www.toymoban.com/news/detail-409985.html

到了这里,关于记录使用gitlab实现Docker自动化部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins+GitLab+Docker搭建前端自动化构建镜像容器部署(无本地证书,映射证书)

    前言 🚀 需提前安装环境及知识点: 1、Docker搭建及基础操作 2、DockerFile文件描述 3、Jenkins搭建及基础点 🚀 目的: 将我们的前端项目打包成一个镜像容器并自动发布部署,可供随时pull访问 1、在当前项目的根目录创建Dockerfile文件并写入如下代码: 代码片段详细描述: 注意

    2024年02月15日
    浏览(40)
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus) 通过前面三篇文章的介绍,我们已经对.net core多方案部署到linux下有了非常全面的认识

    2024年02月02日
    浏览(35)
  • docker+jenkins 实现自动化部署

    工欲善其事必先利其器,所以前期的准备工作必须做好,那么我们要实现自动化部署,必须提前准备什么呢?哈哈哈,可能有一些小伙伴已经猜到了,我们需要一台自己的服务器,这里博主使用的自己够买一台腾讯云的轻量服务器,折扣完了才一百多块钱,当然小伙伴也可以

    2024年02月06日
    浏览(249)
  • 【Jenkins+Gitlab自动化部署配置】

    以下为整理当初参照的博客 阿里云云服务器 ECS 手动搭建GitLab避坑教程 博客文中的镜像源地址已换 Gitlab忘记root用户密码的解决办法 Gitlab学习笔记(一):基于Ubuntu的gitlab的私有服务搭建(超详细) Jenkins 构建报错:Couldn‘t find any revision to build. Verify the repository and branch conf

    2024年02月21日
    浏览(38)
  • Gitlab+Jenkins自动化部署,解放双手

    ​ 在部署项目前需要对源码进行打包,一个简单的SpringBoot项目默认是打包为jar包,也就是在pom.xml中的 packagingjar/packaging 方式,当然也会有一些打包成war包方式,使用外置的Tomcat应用服务器部署war包,那么就是 packagingwar/packaging 。 在父子类聚合项目中,父工程的 pom.xml 文件中

    2024年02月07日
    浏览(41)
  • Jenkins+Docker 实现一键自动化部署项目

    1.安装Jenkins 注:因为Jenkins容器里的用户是Jenkins,而主机用户不是Jenkins,就算是root也一样会报错:/var/jenkins_home/copy_reference_file.log: Permission denied,这个时候就需要在主机上面给主机地址赋予访问Jenkins容器的权限,Jenkins内部用的是uid 1000的user。 -privileged=true让容器具有root权限

    2024年02月16日
    浏览(38)
  • Docker + Jenkins + Nginx实现前端自动化部署

    文章有点长,如果你是以学习的态度来看这篇文章,建议收藏起来慢慢看。 前端自动化部署一直以来概念很清楚知道怎么回事,但是其中怎么操作没怎么研究过,虽然之前环境都搭起来了,但是也只是Jenkins构建项目成功,比如提交代码之后怎么触发自动构建,打包后的文件

    2024年02月05日
    浏览(35)
  • 【git】2、gitlab CICD 模型部署自动化

    GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。 安装方法是参考 GitLab 在 GitHub 上的 Wiki 页面。Gitlab 是被广泛使用的基于 git 的开源代码管理平台, 基于 Ruby on Rails 构建, 主要针对软件开发过程中产生的代码和文档进

    2024年02月04日
    浏览(35)
  • jenkins+docker实现可持续自动化部署springboot项目

    目录 一、前言 二、微服务带来的挑战 2.1 微服务有哪些问题

    2024年04月15日
    浏览(66)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包