北国网,seo加盟代理,简述设计优秀电子商务网站的成功要素,网络营销的网站的分析上篇介绍了drone和gogs安装方法#xff0c;这次介绍这两个如何使用#xff0c;此篇文章主要介绍在物理机上进行发布。 此处用到的java项目地址#xff1a;https://gitee.com/huningfei/demo-test
一 配置gogs
1.1 在Gogs中配置指定仓库的”.drone.yml“文件 1.2 ssh-drone…上篇介绍了drone和gogs安装方法这次介绍这两个如何使用此篇文章主要介绍在物理机上进行发布。 此处用到的java项目地址https://gitee.com/huningfei/demo-test
一 配置gogs
1.1 在Gogs中配置指定仓库的”.drone.yml“文件 1.2 ssh-drone.yml具体内容如下所示(适合在本机直接部署)
kind: pipeline
type: docker
name: test-pipeline# 关闭自动设置Git镜像
# 此处可以不设置将获取最新的git镜像
clone:disable: truesteps:
# 设置Git镜像版本下载仓库文件
# 如果上面没有设置clone此处需要删除如果不删除在pipeline中将多一个clonepipeline会出错
- name: cloneimage: drone/git:1.2.1# 构建和编译Java项目
- name: test-buildimage: maven:3.8.4volumes:# Maven缓存目录- name: mvn-cachepath: /root/.m2# 在Docker容器内执行的命令commands:- mvn clean install# 发布项目
- name: test-deployimage: appleboy/drone-ssh:latestsettings:# 部署主机的IP host: 192.168.2.45# 部署主机的登录账号需从Drone中获取密钥名ssh_user的值创建方式见下面username:from_secret: ssh_user# 部署主机的登录密码需从Drone中获取密钥名ssh_pwd的值创建方式见下面password:from_secret: ssh_pwd# 端口号port: 22# 设置超时command_timeout: 10m# 编写脚本可根据具体情况编写script:# 进入宿主机的“/home/app”目录注意先在宿主机上创建app目录- cd /home/app# 删除jar包我测试的工程名是test# - rm -rf test.0.0.1-SNAPSHOT.jar# 将编译后的jar包复制到/home/app下- cp /home/mvn/.m2/repository/com/huningfei/demo/0.0.1-SNAPSHOT/*-SNAPSHOT.jar .# 执行/home/app下的脚本注意需要在“/home/app”目录下创建start.sh文件- sh restart.sh - sleep 7# 进行测试访问- curl http://localhost:8081/getAppName# 挂载宿主机目录对应test-build的Maven容器的目录
volumes:- name: mvn-cachehost:path: /home/mvn/.m2# 对应Gogs仓库分支
trigger:branch:- master1.3 restart.sh脚本内容
APP_NAMEdemo-0.0.1-SNAPSHOT.jar#判断是否有老的进存在
is_exist(){pidps -ef|grep $APP_NAME|grep -v grep|awk {print $2}#如果不存在返回1存在返回0 if [ -z ${pid} ]; thenreturn 1elsereturn 0fi
}echo ################停止服务#######################
is_exist
if [ $? -eq 0 ]; then #如果是0,就代表进程存在需要停止。pidps -ef|grep $APP_NAME|grep -v grep|awk {print $2}kill -9 $pidelseecho ${APP_NAME} is not runningfiecho ###################启动服务#############################
nohup java -jar /home/app/demo-0.0.1-SNAPSHOT.jar nohup.log 21
1.4 scp-drone.yml scp 适用于在远程主机进行部署
kind: pipeline
type: docker
name: test-pipeline# 关闭自动设置Git镜像
# 此处可以不设置将获取最新的git镜像
clone:disable: truesteps:
# 设置Git镜像版本下载仓库文件
# 如果上面没有设置clone此处需要删除如果不删除在pipeline中将多一个clonepipeline会出错
- name: cloneimage: drone/git:1.2.1# 构建和编译Java项目
- name: test-buildimage: maven:3.8.4volumes:# Maven缓存目录- name: mvn-cachepath: /root/.m2# 在Docker容器内执行的命令commands:- mvn clean install- cp /root/.m2/repository/com/huningfei/demo/0.0.1-SNAPSHOT/*-SNAPSHOT.jar ./# 发布项目
- name: scp filesimage: appleboy/drone-scp:latestsettings:# 部署主机的IP host: 192.168.2.188# 部署主机的登录账号需从Drone中获取密钥名ssh_user的值创建方式见下面username: root#from_secret: ssh_user# 部署主机的登录密码需从Drone中获取密钥名ssh_pwd的值创建方式见下面password: 12345#from_secret: ssh_pwd# 端口号port: 22target: /home/app/${DRONE_REPO_NAME} #目标路径source: ./*.jar #源文件路径- name: restartimage: appleboy/drone-ssh:latestsettings: host: 192.168.2.188# 部署主机的登录账号需从Drone中获取密钥名ssh_user的值创建方式见下面username: root#from_secret: ssh_user# 部署主机的登录密码需从Drone中获取密钥名ssh_pwd的值创建方式见下面password: 123456# from_secret: ssh_pwd# 端口号port: 22# 设置超时command_timeout: 10mscript:# 执行/home/app下的脚本注意需要在“/home/app”目录下创建start.sh文件- sh /home/app/restart.sh - sleep 7# 进行测试访问- curl http://localhost:8081/getAppName# 挂载宿主机目录对应test-build的Maven容器的目录
volumes:- name: mvn-cachehost:path: /home/mvn/.m2# 对应Gogs仓库分支
trigger:branch:- master
然后去2.188上查看目录
二 drone里的配置
2.1 在Drone中设置秘钥 2.2 在Drone中配置Gogs的仓库
会自动同步仓库到drone上不像用jenkins那样需要先克隆下来了。 三 测试发布项目
经过上面的配置基本可以测试项目发布了。
3.1 gogs上的web钩子配置
注意需要在Drone中配置完指定仓库后才会出现Web钩子的地址否则地址为空。 点击”管理Web钩子“按照如下配置推送到Drone Server当然你可以不配置进行手动构建也行。 步骤如下 测试主动推送 以后这个仓库所有的改动都会自动触发drone的构建任务如果下面出现了 对钩就代表推送成功。如下所示
3.2 查看drone构建结果 再去目标服务器上查看启动的进程
刚才上面介绍的都是直接在物理机上进行的部署下篇介绍下如果构建docker形式的服务。