docker镜像部署前端项目 CI/CD

前言

前端部署的方式有很多种,可以使用docker镜像,可以使用阿里云css部署,也可以使用apex部署,以及使用其他华为云的obs部署;我使用的是docker镜像;

先说一下部署流程
在无容器的情况下:我们会生成dist文件夹之后,把它压缩,然后通过scp发布到远程服务器上;
在有容器的情况下:我们会生成dist文件,通过dockerfile生成本地镜像,然后推送到远程仓库上;
使用容器的优点就在于: 我在一个服务器上部署前端项目之后,假设我另一个服务器也想要部署这个前端项目,我执行docker pull 镜像就可;

顺便补充一下我自己对镜像的理解【防止日后忘记haha】
在服务器上容器就相当于虚拟机;可以有多个虚拟机;
多个容器可以依赖一个镜像启动;

runner是gitlab负责cicd的服务;
我们想要在gitlab上跑cicd就需要注册runner;需要在服务器上安装runner服务,注册到gitlab仓库上【设置- CI/CD下】,runner有很多模式shell、docker等;

gitlab.yml编写

使用docker模式的时候,一个stage生成一个容器【依赖于gitlab.yml的image定义的镜像 启动】,运行之后就被删掉;这里我们使用的docker in docker 模式【容器里面使用了docker命令,默认是不可以使用docker命令的】;
先来讲讲gitlab.yml的常用参数吧
参考视频

参数 含义
image 指定基础运行环境的docker镜像
stages YML中的数组写法 stages定义在YML文件的最外层,它的值是一个数组,用于定义一个pipeline不同的流程节点
cache 重复运行pipeline的时候不会重复安装 1在不同pipeline之间重用资源 2在同一pipeline的不同Job之间重用资源
variables 定义全局变量
stage 是一个字符串,且是stages数组的一个子项,表示的是当前的pipeline节点。
script 当前pipeline节点运行的shell脚本(以项目根目录为上下文执行)
tags 当前Job的标记 这个关键字是很重要,因为gitlab的runner会通过tags去判断能否执行当前这个Job,我们在gitlab的面板中能看到当前激活的runner的信息Gitlab项目首页=> setting => CI/CD => Runners. 如果一个Job没有tag或者tag不是sss,那么即使这个Runner是激活且空闲的,也不会去执行!
only 指定当前Job仅仅只在某些tag或者branch上触发
refs 基于分支名称或者pipeline类型运行
paths 哪个文件或目录
policy 更改缓存操作 开始时下载缓存pull 结束时上传更改push,默认是pull-push
artifacts 将生成的资源作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值