Drone自动部署配置文件
.drone.yml
点击查看代码
kind: pipeline # 定义对象类型,还有secret和signature两种类型
type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型
name: build # 定义流水线名称
volumes: # 定义流水线挂载目录,用于共享数据
- name: maven-build
host:
path: /usr/local/nginx/admin-system #jar包目录可以修改从宿主机中挂载的目录
- name: node_modules # 数据卷名称
host: # Host Volume
path: /usr/local/nginx/admin-system/admin/node_modules # 宿主机目录 #绝对路径
steps: # 定义流水线执行步骤,这些步骤将顺序执行
# admin_web-build
- name: web-build
image: node:14
volumes: # 挂载数据卷(此为容器内的目录)
- name: node_modules # 数据卷名称
path: /drone/src/mxy_ui/mxy_admin_web/node_modules # 容器内目录 绝对路径
commands:
- echo =======开始->构建admin-web包=======
- pwd
- cd /drone/src/mxy_ui/mxy_admin_web
- rm -rf package-lock.json
- npm config set registry https://registry.npm.taobao.org
- npm install
- npm run build
- echo =======开始构建blog-web包=======
- cd /drone/src/mxy_ui/mxy_blog_web
- rm -rf package-lock.json
- npm config set registry https://registry.npm.taobao.org
- npm install
- npm run build
- echo =======结束->构建admin-web包=======
# admin_system-package
- name: jar-build # 流水线名称
image: maven:3.8.5-openjdk-8 # 定义创建容器的Docker镜像
volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
- name: maven-build
path: /usr/local/nginx/admin-system # 将应用打包好的Jar和执行脚本挂载出来
commands:
- echo =======1.开始->构建admin-system.jar包=======
- mvn clean package -DskipTests=true
- echo =======1.1.拷贝打包后的jar包到挂载目录=======
- cp /drone/src/mxy_business/mxy_system/target/mxy_system-0.0.1-SNAPSHOT.jar /usr/local/nginx/admin-system
- echo =======1.2.拷贝Dockerfile到挂载目录=======
- cp /drone/src/mxy_business/mxy_system/target/classes/Dockerfile /usr/local/nginx/admin-system
- echo =======1.3.拷贝service启动脚本到挂载目录=======
- cp /drone/src/mxy_business/mxy_system/target/classes/service.sh /usr/local/nginx/admin-system
- echo =======结束->构建admin-system.jar包=======
- echo =======2.开始->拷贝admin-web包=======
- echo =======2.1.备份原blog-web=======
- cp -r /usr/local/nginx/admin-system/blog/dist /usr/local/nginx/admin-system/blog/backup
- echo =======2.2.删除原blog-web=======
- rm -rf /usr/local/nginx/admin-system/blog/dist
- echo =======2.3.拷贝新blog-web=======
- cp -r /drone/src/mxy_ui/mxy_blog_web/dist /usr/local/nginx/admin-system/blog
- echo =======结束->拷贝admin-web包=======
- echo =======3.开始->拷贝blog-web包=======
- echo =======3.1.备份原admin-web=======
- cp -r /usr/local/nginx/admin-system/admin/dist /usr/local/nginx/admin-system/admin/backup
- echo =======3.2.删除原admin-web=======
- rm -rf /usr/local/nginx/admin-system/admin/dist
- echo =======3.3.拷贝新admin-web=======
- cp -r /drone/src/mxy_ui/mxy_admin_web/dist /usr/local/nginx/admin-system/admin
- echo =======结束->拷贝blog-web包=======
---
kind: pipeline # 定义对象类型,还有secret和signature两种类型
type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型
name: 部署 # 定义流水线名称
depends_on: # 依赖build管道
- build
clone:
disable: true # 禁用拉取
steps: # 定义流水线执行步骤,这些步骤将顺序执行
- name: ssh-start
image: appleboy/drone-ssh
settings:
# 你服务器ip地址,124.221.**.**
host:
from_secret: TEST_SERVER_IP
# 服务器账号
username: root
# 密码登入,M?Y@m^y******
password:
from_secret: TEST_SERVER_PASSWORD
port: 22
script:
- echo =======开始部署=======
- cd /usr/local/nginx/admin-system
- echo =======停止容器=======
# - docker stop mxy-system
- echo =======删除容器=======
# - docker rm mxy-system
- echo =======删除旧镜像=======
- docker rmi -f mxy-system:latest
- echo =======构建新镜像=======
- docker build -t mxy-system:latest .
- echo =======启动新容器=======
- docker run -p 8001:8001 -d mxy-system:latest
- echo =======停止服务=======
- ./service.sh stop
- echo =======启动服务=======
- ./service.sh start
- echo =======查看镜像列表=======
- docker images
- echo =======部署成功=======
- name: email
image: drillster/drone-email
settings:
host: smtp.qq.com
username: xxxx@qq.com
password: cdog********
from: xxxx@qq.com
recipients: [ 2533xxxx@qq.com ]
Drone自动部署配置文件的更多相关文章
- 使用gogs,drone搭建自动部署
使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎D ...
- 记录使用gogs,drone搭建自动部署测试环境
使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 使用Maven自动部署Java Web应用到Tomcat服务器
学习如何使用Maven,我推荐一本工具书,<maven the definitive guide>.在这本工具书手中,详细介绍了maven的使用思想,并且提供了从基本到复杂的具体项目应用. ...
- 简进祥-SVN版本控制方案:多分支并行开发,多环境自动部署
两地同时开发一个产品,目前线上有3个环境:测试环境.预发布环境.生产环境.目前系统部署采用jenkins自动化部署工具 用jenkins部署的方案 jenkins 测试环境:配置了各个分支的svn 地 ...
- myeclipse + tomcat 项目自动部署
在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 ...
- maven自动部署到远程tomcat教程
使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...
- svn版本控制方案:多分支并行开发,多环境自动部署
背景 keywords:svn,trunk,branch,jenkins,maven,merge 两地同时开发一个产品,目前线上有3个环境:测试环境.预发布环境.生产环境.目前系统部署采用jenkin ...
- 做了一个简易的git 代码自动部署脚本
做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08) 阅读(200 ...
随机推荐
- CTF学习笔记(三)php部分
三.常见PHP用法与漏洞 (〇)php的备份文件与phps php的备份文件一般是*.php.bak,在根目录下输入/index.php.bak, 下载 备份文件. phps文件就是php的源代码文件 ...
- QT控件使用--QPlainTextEdit
QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本. 一些常用的函数有: appendPlainText(const QString) 向 PlainTextEdit 组件添 ...
- Asp.net中web.config配置文件最全面详解 (转载至CSDN)
转载至csdn链接如下 https://blog.csdn.net/u011966339/article/details/64905062 web.config是一个XML文件,用来储存Asp.net ...
- [OC] Block 是什么
Block 是 带有自动变量的匿名函数. emmmm 反正我看了也不懂,我们一点点用具体的例子分析一下block. 1. 我们现在要在一个文件中使用block(我们后面再提到两个界面传值的block ...
- Linux学习 --- 系统网络配置
前言 : 如果一台计算机想接入互联网,必须配置好IP地址,子网掩码,网关,DNS服务器.在Linux系统中,这些信息都可以修改对应的配置文件来进行配置.临时配置一下网络可以使用一些简单的命令来进行配置 ...
- HBase建命名空间建表
public class HBaseDDL { //声明一个静态属性 static public Connection conn = HBaseConnection2.conn; /** * 创建命名 ...
- 51电子-STC89C51开发板:安装驱动
全部内容请点击目录列表查看: 51电子-STC89C51开发板:<目录> --------------------------- 正文开始 ---------------------- ...
- [NOIP1996 提高组] 挖地雷
题目描述 在一个地图上有N个地窖(N≤20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径. 当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷, 然后可以沿着指出的连接往下挖(仅 ...
- macOS NSScrollView简单使用
先看图片 这里是NSScrollView配合其他控件使用,我们这里只讲NSScrollView. 复制以下代码即可以运行 @interface ViewControl () /** 滚动显示 */ @ ...
- SqlServer的主键和外键
SqlServer在创建表时要有 完整性约束(主键)和参照性约束(外键) 1.在建表时创建主键 第一种方法: 第二种方法: 联合主键,即2个主键,sid和cid 2.如果表已经存在,需要创建主键 外键