07.你还在手动部署代码吗

如今的项目或者个人项目中,大家的代码怎么部署呢?公司一般都有完整的持续集成以及持续交付平台,对于小公司可能也有各自搭建了一些,比如jenkins,以及gitlab集成的gitlab-ci等等,这些都可以完成我们部署的工作甚至是测试集成等等一系列流水化工作。

但是,即使如此,我依旧相信,很多公司或者前端开发者根本不太关注什么持续交付、持续集成等等。至于在部署这一块,不少走的还是本地npm run build+ssh+sftp手动模式。当然我之前也一直这么干,为此还借助开源项目自己写了一个开源脚本@dllcnx/auto-deploy供团队使用(注意:此脚本密码模式因为要知道服务器用户密码且部署目录你的账户要有权限,虽然针对密码做了个加密,但是…)。

那么,我就想提交一下代码,其它啥都不想管。所以为什么不试试Drone呢?

Drone是一个现代持续集成平台,它使繁忙的团队能够使用强大的云原生管道引擎自动执行其构建、测试和发布工作流程。

所以Drone的功能可不仅仅是部署,只是我针对这个需求可以使用它,所以一定不要被我的文章局限住,此文只是抛砖引玉。上篇docker服务系列的文章,我也介绍了搭建了一个git服务仓库06.搭建一个自己的私有仓库-Gitea,所以这篇文章也就以gitea仓库为例,来达到代码推送,由drone去自动编译部署,其它如Github、Gitlab、Gitee、Bitbucket以及gitea/Gogs可以看各自文档。

为什么不用jenkins呢?因为原来在公司就在用它,自己个人的代码就想试试其它的,并且jenkins从界面到配置,再到内存占用,我个人都是不太喜欢的,当然不是说jenkins不好,反而借助插件等等,它的能力是很强大的。

官方是这么说的: Drone是一个容器原生持续集成系统,旨在成为老旧Jenkins安装的自助服务替代品。

一、准备

创建 Gitea OAuth 应用程序。Client ID 和 Client Secret 用于授权访问 Gitea 资源。setting->Applications->create Applications

  1. 填入名称和回调地址(其实就是后边drone部署的访问地址)
    在这里插入图片描述

注意: Client Secret只显示一次,确认关闭后就不再显示了,如果忘了就只能重置。

在这里插入图片描述

  1. 创建共享秘钥

创建一个共享密钥,以验证运行器与中央无人机服务器之间的通信。

您可以使用 openssl 生成共享密钥:

openssl rand -hex 16     // 796f8245fdba973216a5493b4c0b7f83

二、安装Drone服务

完整的drone服务由Drone和drone-runner构成。

drone服务启动并运行后,需要安装runner来执行生成管道。有关详细的安装说明,请参阅运行器安装文档。drone-runner轮询服务器以查找要执行的工作负载。有不同类型的运行器针对不同的用例和运行时环境进行了优化。您可以安装一个或多个一个或多个类型的流道。这一块我们采用drone-runner即可,它是一个通用运行器。

Docker runner是在临时 Docker 容器中执行管道步骤的守护程序。您可以安装单个 Docker runner,也可以在多台计算机上安装 Docker runner以创建自己的构建集群。

docker原生部署
  1. 拉取镜像
docker pull drone/drone:latest
docker pull drone/drone-runner-docker:latest
  1. 启动drone服务
docker run --detach=true --volume=/docker/drone:/data --env=DRONE_GITEA_SERVER=https://dllcnx.com:30000 \
  --env=DRONE_GITEA_CLIENT_ID=06310187-3064-4cf8-92f3-4008dfaa810b \
  --env=DRONE_GITEA_CLIENT_SECRET=gto_c4ytebo2jmorn3bihhyy6phbtet34hl6sbhomhk77x7x2iuv2hva \
  --env=DRONE_RPC_SECRET=796f8245fdba973216a5493b4c0b7f83 \
  --env=DRONE_SERVER_HOST=192.168.64.1:37078 \
  --env=DRONE_SERVER_PROTO=http \
  --env=DRONE_USER_CREATE=username:test,admin:true \
  --publish=37078:80 \
  --publish=443:443 \
  --restart=always \
  --name=drone \
  drone/drone:latest
  • DRONE_GITEA_CLIENT_ID: 必需的字符串,值提供您的 Gitea oauth 客户端 ID。

  • DRONE_GITEA_CLIENT_SECRET:必需的字符串,提供 Gitea oauth 客户端密码。

  • DRONE_GITEA_SERVER:必填字符串,提供您的 Gitea 服务器地址。

  • DRONE_GIT_ALWAYS_AUTH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372800.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言学习case12:ggplot 置信区间(多线型)

接上文:多条曲线 R语言学习case11:ggplot 置信区间(包含多子图) 在ggplot2中,每个geom函数都接受一个映射参数。然而,并非每个美学属性都适用于每个geom。你可以设置点的形状,但不能设置线的“…

从雪花到分形几何

目录 前言雪花曲线分形几何雪花曲线工程化参考文献前言 新一股寒潮来袭,河南,安徽,重庆,湖北,湖南北部等地都飘起了大雪,一夜的功夫,世界银装素裹,雪白雪白的,好不美丽迷人。 雪花曲线 物理学上,雪花是一种晶体,是天空中的水汽经凝华而来的固态降水,结构随温度…

Go语言深度解析:探索 crypto/md5 标准库的强大功能

Go语言深度解析:探索 crypto/md5 标准库的强大功能 引言Go语言和MD5的基础知识MD5算法简介Go语言概述Go中的MD5实现 crypto/md5 库的使用方法基本用法处理大型数据安全注意事项 实际案例分析示例1:文件的MD5校验示例2:网络数据的MD5哈希示例3…

BZOJ0481. 树的重心之砍树Link Cut Centroids

题目 思路 分类讨论。 首先当树只有一个重心的时候,我们删掉最小的边再加上原边即可. 再看有两个重心的情况. 显然这棵树必定是类似这样的: 即删掉 A 后,以B 为根的子树是剩下的最大连通块,反之亦然. 那就可以得到一个结论: 删掉边 (A,B) 后,两棵树的大小相等. 那我们只…

【机器学习】某闯关类手游用户流失预测

Final Project: 某闯关类手游用户流失预测 1 案例简介 手游在当下的日常娱乐中占据着主导性地位,成为人们生活中放松身心的一种有效途径。近年来,各种类型的手游,尤其是闯关类的休闲手游,由于其对碎片化时间的利用取得了非常广泛…

HomeAssistant系统添加HACS插件商店与远程控制家中智能家居

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant,通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店,将米家,果家设备接入 Home Assistant。 基本条件…

国图公考:公务员面试资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料: 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…

YoloV8改进策略:Neck改进:HAM混合注意力机制改进YoloV8|多种改进,多种姿势涨点|代码注释详解

摘要 HAM通过快速一维卷积来缓解通道注意机制的负担,并引入通道分离技术自适应强调重要特征。HAM作为通用模块,在CIFAR-10、CIFAR-100和STL-10数据集上实现了SOTA级别的分类性能。 论文链接:https://www.sciencedirect.com/science/article/abs/pii/S0031320322002667?vi…

网工内推 | 网络工程师,需持有HCIE,最高16K,午餐补贴

01 科电数据 招聘岗位:网络工程师 职责描述: 1、负责网络及相关安全产品和技术,熟悉相关主流设备(路由器、交换机、防火墙、IPS/IDS、WAF、VPN、负载均衡、网闸)实施维护、安全加固及优化配置技术; 2、负责…

linux中的gdb调试

gdb是在程序运行的结果与预期不符合时,可以使用gdb进行调试 注意:使用gdb调试时要在编译上加-g参数 gcc -g -c hello.c 启动gdb调试: gdb file 对gdb进行调试 设置运行参数: set args 可指定运行参数 show args 可以查…

Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)

目录 **Spring5** 框架新功能系列一Spring 5.0 框架自带了通用的日志封装Spring5 **框架核心容器**支持Nullable **注解****Spring5** **核心容器支持函数式风格** GenericApplicationContext**Spring5** **支持整合** JUnit5感谢阅读 开篇: 欢迎再次来到 Spring 5 学习系列&am…

Windows如何安装Node.js环境并制作贪吃蛇小游戏分享好友远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

ICC2:polygon命令与复杂power plan

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 往期文章链接: ICC2&#x

全面解析:船运物流管理系统背后的技术

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

CSS:水平垂直居中

水平垂直居中效果如下&#xff1a; HTML: <div class"parent"><div class"child"></div> </div>公共的 CSS&#xff1a; .parent {width: 300px;height: 300px;background-color:#d0e4fe; }.child {width: 100px;height: 100px…

零基础如何入门渗透测试2024年最新版,保姆级教程,小白必看!

转眼间&#xff0c;从大三开始学安全&#xff0c;到现在也有五年了&#xff0c;也算是对渗透测试有一定理解&#xff0c;今天也是出一篇入门教程&#xff0c;以实操为主&#xff0c;希望可以帮助到想入门渗透测试的小白。如果觉得有用&#xff0c;可以给我点个赞和收藏&#xf…

[C语言] 代码调试, 快捷键说明,assert函数,const函数

一、Debug 和 Release 区别 1.Debug 为调试版本 包含调试信息,不做任何优化,便于程序员调试程序,产生Debug.exe 可以调试,因为文件中包含了调试信息,文件比release大 2.Release 为发布版本 进行了各种优化,是程序在代码大小和运行速度是最优,产生Release.exe 不能调试,可以以…

下载已编译的 OpenCV 包在 Visual Studio 下实现快速配置

自己编译 OpenCV 挺麻烦的&#xff0c;配置需要耗费很长时间&#xff0c;编译也需要很长时间&#xff0c;而且无法保证能全部编译通过。利用 OpenCV 官网提供的已编译的 OpenCV 库可以节省很多时间。下面介绍安装配置方法。 1. OpenCV 官网 地址是&#xff1a;https://opencv…

IT行业证书的获取与价值:提升职业竞争力的关键

目录 IT行业证书的价值和作用 1. Cisco&#xff08;思科&#xff09;认证&#xff08;如CCNA、CCNP、CCIE&#xff09;&#xff1a; 2. 微软认证&#xff08;如MCSA、MCSE、MCSD&#xff09;&#xff1a; 3. 计算机网络技术&#xff08;CompTIA Network、CompTIA Security&a…

二叉树(2)——堆的实现

堆表面是数组&#xff0c;内核是完全二叉树/满二叉树 在插入删除的时候要注意操作过后堆是否还是一个堆&#xff0c;要进行交换等操作。&#xff08;向上调整&#xff09; 逻辑上控制二叉树&#xff0c;物理上控制数组&#xff01;&#xff01;&#xff01; 接下来我们用【小…