【架构】

整体的设计思路是通过gitlab的runner将版本发布到各个环境,通过Apollo配置中心来区分环境配置,做到一次构建到处运行。生产环境镜像库根据实际情况来定,有些用的AWS ECR,有些是开源的,开发和测试环境的镜像推送到harbor库,harbor是开源的镜像管理工具。

参考地址:https://github.com/goharbor/harbor

【Apollo配置中心】

Apollo是携程开源的配置中心,Apollo资料参考地址:https://github.com/ctripcorp/apollo,https://github.com/ctripcorp/apollo/wiki

【Docker介绍】

相比传统VM,Docker有以下优点:

  • 更轻量
  • 启动速度更快
  • 可移植
  • 一次构建到处运行

Docker的架构如下:

DockerFile的编写也比较简单,是一组linux命令

【DockerFile】


#指定基础的linux版本,该版本默认从你的版本库拉取FROM amazonlinux:latest#基本信息MAINTAINER 123@qq.com version:1.0#指定运行用户USER root#一组linux命令,创建安装目录RUN mkdir /usr/javaRUN mkdir /usr/java/jdk1.8.0_191#指定环境变量ENV JAVA_HOME /usr/java/jdk1.8.0_191ENV PATH $PATH:$HOME/bin:$JAVA_HOME/binENV LANG C.UTF-8#解压安装包ADD target/app.tar.gz /usr/local#启动应用ENTRYPOINT ["sh","/usr/local/app/bin/start.sh"]

【部署到本地和云端】

本地部署需要打通ssh权限,使用公钥部署,可以通过定义变量的方式保持灵活性。再通过gitlab.yml进行安装部署。

部署到aws云端需要给runner分配操作权限,脚本略有不同。

【灰度部署】

灰度时通过Apollo配置中心进行环境的区分。

Gitlab+Docker构建流水线部署相关推荐

  1. TeamCity的安装(docker) 构建 和 部署 (1)

    目录 前言 安装teamCity 配置安装docker镜像 初始化 安装teamAgent 官方docker方式安装 我的agent docker镜像 agent的配置文件 配置构建和使用 创建构建项 ...

  2. Jenkins + Gitlab 实现代码流水线部署

    DevOps DevOps 概述 DevOps(Development和Operations的组合词)是一种重视 " 软件开发人员(Dev)" 和 " IT运维技术人员( ...

  3. jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...

    本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...

  4. 广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”

    文章目录 广告业务系统 之 敏捷交付 -- "基于 Docker 容器同机部署" 服务 Docker 构建及部署 代码支持 服务打包&构建 服务部署 广告业务系统 之 敏捷 ...

  5. SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

    作者:寅务 www.jianshu.com/p/bdb0642b7495 1.前言与初衷 本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用. 本文章会涉及结合工作过程中部署不同环境服 ...

  6. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

  7. GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)

    GitLab通过CI/CD 实现实现流水线部署(演示主要是通过shell上传SpringBoot项目) 环境准备 1.JDK: 2.maven: 3.Git 4.Docker (本次安装没有使用到,仅 ...

  8. 《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——2.2 容器式Linux系统的Docker配置...

    本节书摘来自异步社区<Docker容器:利用Kubernetes.Flannel.Cockpit和Atomic构建和部署>一书中的第2章,第2.2节,作者: [美]Christopher ...

  9. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...

最新文章

  1. java中JFrame类中函数addWindowListener(new WindowAdapter)
  2. Unidesk, Citrix 桌面虚拟化方案之新神器
  3. WINCE6.0建立共享文件夹
  4. 3W字!带你玩转「消息队列」
  5. 随想一·杨柳岸晓风残月
  6. SAP License:美资企业、台资企业和国企的区别
  7. Lintcode: Permutation Index
  8. C#关键字operator
  9. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_03.jdbc操作数据库的问题分析
  10. 路由交换技术vlan、trunk、单臂路由、三层交换、链路聚合、STP
  11. unity 移动物体位置的常用方法
  12. Adobe Photoshop 中的魔棒工具
  13. Hadoop Web 控制台安全认证
  14. 阿里巴巴常用的 12 个后端开发工具,建议你快快收藏!
  15. 五险一金 | 养老保险的认识
  16. flash 外国小游戏教程网站
  17. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
  18. 如何获取个人开发者微信小程序的APPId?
  19. 荧光染色切片病理分析算法(深度学习+机器学习)
  20. Android tv树莓派遥控器,树莓派的kodi设置遥控器的方法

热门文章

  1. Win10下系统自带的各种监测工具
  2. kubectl命令使用滚动更新和回滚
  3. 我对“Hello World”30年的爱恨情仇
  4. mac解决//go:linkname must refer to declared function or variable
  5. CTF密码学——初探
  6. 区块链在中国(3):区块链场景漫谈
  7. mysql管理工具10.1,NavicatforMySQL10
  8. 4pin oled字模,oled图片编码生成方法
  9. 第四十讲项目三 鸡兔同笼
  10. python入门小项目 | 开发一个《小猫抓鱼》小游戏