通过docker和gitlab实现项目自动打包部署

Gitlab如何实现自动打包部署到docker集群?

预备知识:

开发模式转变:瀑布模型——》敏捷开发——》DevOps

DevOps:Development Operations的组合词

CICD:持续集成(Continuous Integration),持续交付(Continuous Delivery),持续部署(Continuous Deployment)

使用 Gitlab-CI 实现自动打包部署

通过 pipeline 完成项目的自动打包部署

名词解释

pipeline(管道,流水线):里面包含多个流程(Stage),如自动构建,自动单元测试,自动代码检查等

pipeline流程:verify——》build——》dockerpush——》deploy

单元测试——》Java编译——》push镜像——》deploy部署

gitlab-runner:gitlab持续化集成工具

具体实现

一、git安装

yum安装

# 移除git
yum remove git  

# 安装 yum 源的 Git 版本
yum install -y git  

# 查看版本
git version 

编译安装

# 解压压缩包到 /usr/local 下
tar -zxf 压缩包

# 安装依赖
sudo yum install -y curl-devel

# 编译
make prefix=/usr/local/git all

# 安装
make prefix=/usr/local/git install

二、gitlab-runner安装
# 添加 gitlab 官方 repo
sudo curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

# 安装 gitlab-runner
sudo yum install -y gitlab-runner

# 指定安装目录
sudo gitlab-runner install --working-directory /home/gitlab-runner --user  appserv

# 重启gitlab-runner
sudo gitlab-runner restart

三、Gitlab-Runner注册

准备gitlab地址和密匙:点击gitlab管理员后的概览菜单,找到runner,进入runner后右边就可以看到,一个是gitlab的url地址,一个是密钥

# 开始 gitlab-runner 注册
gitlab-runner register 回车

输入url

输入token

输入tags

输入executor
四、项目增加.gitlab-ci.yml文件进行配置

打包部署流程概述:项目合并分支到gitlab,gitlab通过.gitlab-ci.yml文件判断该分支要执行哪些步骤

如下配置,项目合并到dev分支则执行

  1. 在所有job前执行before_script,登录私有仓库
  2. 执行build-dev,通过 tags 指定的 build_dev 执行器执行 spript 对应的命令完成项目编译,单元测试,打包功能
  3. 执行deploy-dev,如上执行命令利用镜像创建容器并启动服务

.gitlab-ci.yml简易配置

stages: # 要执行的步骤顺序
  - build-dev
  - deploy-dev

before_script: # 在所有job前执行,登录私有仓库
  - docker login -u 用户名 -p 密码 域名地址

build-dev: 
  stage: build-dev # 属于哪个流程
  script:
    - mvn clean package  # mvn clean package 完成了项目编译,单元测试,打包功能
    - docker push  # push镜像到远程仓库
  only: # 指定只有提交到dev分支或者tags标签才执行此job
    - dev 
    - tags
  tags: # 指定执行器,在哪个runner上面执行
    - build_dev 
    
deploy-dev:
  stage: deploy-dev
  script:
    - docker stack deploy -c docker-compose-dev.yml eureka # 利用镜像创建容器并启动服务
  only:
    - dev
    - tags
  tags:
    - deploy_dev


  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins和DockerGitLab结合使用,可以实现自动部署流程。以下是实现自动部署的步骤: 1. 创建GitLab仓库:在GitLab中创建一个仓库,用于存放项目代码。 2. 设置Webhook:在GitLab仓库的设置中,配置Webhook,将其与Jenkins服务器关联起来。这样在GitLab中代码更新时,会触发Webhook,通知Jenkins执行构建任务。 3. 安装Jenkins:在服务器上安装Jenkins,并配置相应的插件,如Docker Pipeline插件。 4. 创建Jenkins Pipeline:在Jenkins中创建Pipeline,此Pipeline包含了构建、测试和部署的各个阶段。通过Jenkinsfile,可以定义Pipeline的各个阶段的具体步骤和顺序。 5. 执行构建任务:当GitLab仓库中的代码发生变化,Webhook会通知Jenkins服务器执行构建任务。Jenkins会拉取代码,并执行构建过程,如编译、运行测试等。 6. 打包Docker镜像:构建成功后,Jenkins会使用Docker Pipeline插件打包Docker镜像,将应用程序和其依赖项封装到一个镜像中。 7. 推送镜像到镜像仓库:Jenkins会将构建好的Docker镜像推送到镜像仓库,如Docker Hub或私有的Docker Registry中。 8. 部署到生产环境:一旦镜像推送完毕,Jenkins可以触发部署任务将镜像部署到生产环境中,可以使用Docker Compose或者Kubernetes进行容器编排和部署。 通过以上步骤,可以实现自动部署流程,当代码发生变化时,Jenkins会自动执行构建任务、打包镜像和部署到生产环境,提高了部署的效率和可靠性。同时,使用Docker可以提供隔离性和可移植性,使得应用程序的部署更加方便和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值