.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自动部署配置文件的更多相关文章

  1. 使用gogs,drone搭建自动部署

    使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎D ...

  2. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  3. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  4. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  5. 使用Maven自动部署Java Web应用到Tomcat服务器

    学习如何使用Maven,我推荐一本工具书,<maven the definitive guide>.在这本工具书手中,详细介绍了maven的使用思想,并且提供了从基本到复杂的具体项目应用. ...

  6. 简进祥-SVN版本控制方案:多分支并行开发,多环境自动部署

    两地同时开发一个产品,目前线上有3个环境:测试环境.预发布环境.生产环境.目前系统部署采用jenkins自动化部署工具 用jenkins部署的方案 jenkins 测试环境:配置了各个分支的svn 地 ...

  7. myeclipse + tomcat 项目自动部署

    在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 ...

  8. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...

  9. svn版本控制方案:多分支并行开发,多环境自动部署

    背景 keywords:svn,trunk,branch,jenkins,maven,merge 两地同时开发一个产品,目前线上有3个环境:测试环境.预发布环境.生产环境.目前系统部署采用jenkin ...

  10. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

随机推荐

  1. CentOS 7.9 环境下构建 Python 3.9

    sudo yum -y update sudo yum -y install yum-utils sudo yum-builddep -y python3 curl -O https://www.py ...

  2. 浏览器渲染与event loop

    线程 1.GUI渲染线程(一个) 2.JS引擎线程(一个) 3.事件触发线程 4.定时器触发线程(多个) 5.异步http请求线程(多个) 线程执行 页面加载时 GUI渲染引擎和JS执行引擎互斥,当G ...

  3. Java-获取真实用户ip

    1 import common.util.StringUtil; 2 import org.springframework.web.bind.annotation.ModelAttribute; 3 ...

  4. Delphi模拟win+tab按键效果

    //按下左侧win键 keybd_event(VK_LWIN,0,0,0); //按下tab键 keybd_event(VK_TAB,0,0,0); //抬起左侧win键 keybd_event(VK ...

  5. mybatis中多条件模糊查询不显示数据的问题

    在写查询语句时:

  6. Pytorch实战学习(二):用Pytorch实现逻辑回归

    <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili 用Pytorch实现逻辑回归 Logistic Regression 从线性回归 →​ 逻辑回归 1.分类问题 计算属于 ...

  7. oracle 索引创建

    --查询表里的索引 select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.inde ...

  8. 【笔记】小米路由器AX1800开启ipv6外部访问

    首先你的路由器要能获取ipv6地址 获取不到的光猫改桥接 路由器拨号 然后想办法开SSH ssh进路由器修改防火墙规则 ip6table的 建议先导出规则 ip6tables-save 在第120行插 ...

  9. 项目开发中的ORM框架使用mybatis还是mybatis-plus

    mybatis支持xml配置文件和注解 mybaits-plus也支持xml配置文件和注解,多了baseMapper,将基础的CRUD操作单独拿出来进行了封装 mybatis是一款优秀的持久层框架,它 ...

  10. watch监听中的deep以及immdiate

    1 deep:深度监听 使用场景:如果是监听的是对象类型,当手动修改对象的某个属性时,发现是无效的,此时需要给监听器添加deep:true. 例如: data:{ obj:{ a:1 } }, wat ...