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 ...
随机推荐
- C# 前台线程 后台线程区别
前台线程 会随进程一起结束 不管是否完成,后台线程需要执行完毕,进程才能结束 例子: class Program { static void Main(string[] args) { Thread ...
- 理解redux中间件
redux questions : 1. reducers 函数如何创建和聚合 2. action创建函数如何如何包裹在dispatch函数中 3. 如何给默认的dispatch方法增加中间件能力 m ...
- 【git】git基本使用以及设置
视频讲解 一.git下载 官网:Git - Downloads (git-scm.com) 国内镜像:CNPM Binaries Mirror (npmmirror.com) 就目前而言,github ...
- VMware导入ovf报错
如下图所示报错 在网上查找了一些解决方案,大都说是ovftool版本兼容问题,但是我这里好像并不行,最后的解决的办法是对导入的位置默认不做改动. 报错原因:改变了默认路径.
- andriod app更新
对于安卓用户来说,手机应用市场说满天飞可是一点都不夸张,比如小米,魅族,百度,360,机锋,应用宝等等,当我们想上线一款新版本APP时,先不说渠道打包的麻烦,单纯指上传APP到各大应用市场的工作量就已 ...
- pytest-2 之前后置及 conftest.py+fixture+yield实现用例前后置
pytest测试用例及类级别的前置,可以和unittest一样进行定义,也可以把该前置方法或类定义到conftest.py里,而在需要前置的方法的参数里加上该前置名作为参数: pytest有两种方式来 ...
- axios响应拦截器无法显示响应头问题
Access-Control-Expose-Headers 响应报头.跨域 公开响应头 问题现象: 前端无法获取响应头 Response Header 原因 问题原因:跨域问题 启用跨域请求(CORS ...
- ES6-遍历器与for-of循环
一.认识Iterator对象(可遍历对象) console.log([1, 2]); console.log([1, 2][Symbol.iterator]);//ƒ ...
- MySQL 列定义的类型是varchar,已建立索引,查询时如果传入的是数字,则无法利用索引,查询特别慢。
类型不对,导致无法充分利用索引. 比如:select * from table_name_xxx where name = "1234"; ---- 查询很快 ,能够使用到na ...
- system verilog与C语言的接口(包含使用方法以及实例)
资料来源 (1) sv绿皮书; (2) vcs user guide; (3) https://www.cnblogs.com/studyforever/p/5169243.html (4) syst ...