Gitlab+Docker构建流水线部署
【架构】
整体的设计思路是通过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构建流水线部署相关推荐
- TeamCity的安装(docker) 构建 和 部署 (1)
目录 前言 安装teamCity 配置安装docker镜像 初始化 安装teamAgent 官方docker方式安装 我的agent docker镜像 agent的配置文件 配置构建和使用 创建构建项 ...
- Jenkins + Gitlab 实现代码流水线部署
DevOps DevOps 概述 DevOps(Development和Operations的组合词)是一种重视 " 软件开发人员(Dev)" 和 " IT运维技术人员( ...
- jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...
本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...
- 广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”
文章目录 广告业务系统 之 敏捷交付 -- "基于 Docker 容器同机部署" 服务 Docker 构建及部署 代码支持 服务打包&构建 服务部署 广告业务系统 之 敏捷 ...
- SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战
作者:寅务 www.jianshu.com/p/bdb0642b7495 1.前言与初衷 本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用. 本文章会涉及结合工作过程中部署不同环境服 ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
- GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)
GitLab通过CI/CD 实现实现流水线部署(演示主要是通过shell上传SpringBoot项目) 环境准备 1.JDK: 2.maven: 3.Git 4.Docker (本次安装没有使用到,仅 ...
- 《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——2.2 容器式Linux系统的Docker配置...
本节书摘来自异步社区<Docker容器:利用Kubernetes.Flannel.Cockpit和Atomic构建和部署>一书中的第2章,第2.2节,作者: [美]Christopher ...
- Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...
最新文章
- java中JFrame类中函数addWindowListener(new WindowAdapter)
- Unidesk, Citrix 桌面虚拟化方案之新神器
- WINCE6.0建立共享文件夹
- 3W字!带你玩转「消息队列」
- 随想一·杨柳岸晓风残月
- SAP License:美资企业、台资企业和国企的区别
- Lintcode: Permutation Index
- C#关键字operator
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_03.jdbc操作数据库的问题分析
- 路由交换技术vlan、trunk、单臂路由、三层交换、链路聚合、STP
- unity 移动物体位置的常用方法
- Adobe Photoshop 中的魔棒工具
- Hadoop Web 控制台安全认证
- 阿里巴巴常用的 12 个后端开发工具,建议你快快收藏!
- 五险一金 | 养老保险的认识
- flash 外国小游戏教程网站
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
- 如何获取个人开发者微信小程序的APPId?
- 荧光染色切片病理分析算法(深度学习+机器学习)
- Android tv树莓派遥控器,树莓派的kodi设置遥控器的方法
热门文章
- Win10下系统自带的各种监测工具
- kubectl命令使用滚动更新和回滚
- 我对“Hello World”30年的爱恨情仇
- mac解决//go:linkname must refer to declared function or variable
- CTF密码学——初探
- 区块链在中国(3):区块链场景漫谈
- mysql管理工具10.1,NavicatforMySQL10
- 4pin oled字模,oled图片编码生成方法
- 第四十讲项目三 鸡兔同笼
- python入门小项目 | 开发一个《小猫抓鱼》小游戏