关键词:
前言
本文章基于 ruoyi-cloud 项目改编。
阿里云云效工作台点击进入,主要使用到代码管理及流水线模块。
主机配置:CentOS 7.9.2009 x86_64
环境配置:安装 docker、docker-compose
# 安装 docker 使用 daocloud 的一键安装脚本
curl -sSL https://get.daocloud.io/docker | sh
# 安装 daocloud 加速器,避免 dockerhub 网络问题
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
# 启动 docker 服务
systemctl start docker
# 安装 docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
一、上传项目并进入流水线
二、新建流水线 - 启动 mysql/redis/nacos
1.新建流水线
2.流水线源配置
3.构建配置
4.部署配置
# 项目文件夹
BASE_DIR="/home/witbee-cloud"
# 项目包名
PACKAGE_NAME="witbee-cloud.tgz"
echo "创建项目文件夹"
mkdir -p $BASE_DIR
echo "开始解压文件"
tar -zxvf $BASE_DIR/$PACKAGE_NAME -C $BASE_DIR
echo "授权项目文件夹"
chmod -R 777 $BASE_DIR
echo "执行构建脚本"
cd $BASE_DIR/docker
sh deploy.sh base
5.保存并运行
三、新建流水线 - 启动 gateway/auth/system
1.新建流水线(同上)
2.流水线源配置(同上)
3.构建配置
4.部署配置(修改部署脚本,其它同上)
# 项目文件夹
BASE_DIR="/home/witbee-cloud"
# 项目包名
PACKAGE_NAME="witbee-cloud.tgz"
echo "开始解压文件"
tar -zxvf $BASE_DIR/$PACKAGE_NAME -C $BASE_DIR
echo "授权项目文件夹"
chmod -R 777 $BASE_DIR
echo "执行构建脚本"
cd $BASE_DIR/docker
sh deploy.sh modules
5.保存并运行
三、新建流水线 - 启动 file/gen/job
1.新建流水线(同上)
2.流水线源配置(同上)
3.构建配置
4.部署配置(修改部署脚本,其它同上)
# 项目文件夹
BASE_DIR="/home/witbee-cloud"
# 项目包名
PACKAGE_NAME="witbee-cloud.tgz"
echo "开始解压文件"
tar -zxvf $BASE_DIR/$PACKAGE_NAME -C $BASE_DIR
echo "授权项目文件夹"
chmod -R 777 $BASE_DIR
echo "执行构建脚本"
cd $BASE_DIR/docker
sh deploy.sh modulesPlus
5.保存并运行
四、新建流水线 - 启动 nginx
1.新建流水线
2.流水线源配置(同上)
3.构建配置
4.部署配置
# 项目文件夹
BASE_DIR="/home/witbee-cloud"
# 项目包名
PACKAGE_NAME="witbee-ui.tgz"
echo "开始解压文件"
tar -zxvf $BASE_DIR/$PACKAGE_NAME -C $BASE_DIR/docker/nginx/html/dist
echo "授权项目文件夹"
chmod -R 777 $BASE_DIR
echo "执行构建脚本"
cd $BASE_DIR/docker
docker-compose up -d witbee-nginx
5.保存并运行
总结(附上 docker-compose.yml、deploy.sh 脚本)
docker-compose.yml
version : '3.8'
services:
witbee-nacos:
restart: always
container_name: witbee-nacos
build:
context: ./nacos
environment:
- MODE=standalone
volumes:
- ./nacos/logs/:/home/nacos/logs
- ./nacos/conf/application.properties:/home/nacos/conf/application.properties
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
depends_on:
witbee-mysql:
condition: service_healthy
witbee-mysql:
restart: always
container_name: witbee-mysql
build:
context: ./mysql
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
command:
# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
environment:
TZ: Asia/Shanghai
MYSQL_DATABASE: 'ry-cloud'
MYSQL_ROOT_PASSWORD: password
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
timeout: 45s
interval: 10s
retries: 10
witbee-redis:
restart: always
container_name: witbee-redis
image: redis:7.0.6
build:
context: ./redis
ports:
- "6379:6379"
volumes:
- ./redis/conf/redis.conf:/home/witbee/redis/redis.conf
- ./redis/data:/data
command: redis-server /home/witbee/redis/redis.conf
witbee-nginx:
container_name: witbee-nginx
image: nginx
build:
context: ./nginx
ports:
- "8000:80"
volumes:
- ./nginx/html/dist:/home/witbee/projects/witbee-ui
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
- ./nginx/conf.d:/etc/nginx/conf.d
depends_on:
- witbee-gateway
witbee-gateway:
restart: always
container_name: witbee-gateway
build:
context: ./witbee/gateway
dockerfile: dockerfile
ports:
- "9000:9000"
depends_on:
- witbee-redis
witbee-auth:
restart: always
container_name: witbee-auth
build:
context: ./witbee/auth
dockerfile: dockerfile
ports:
- "9200:9200"
depends_on:
- witbee-redis
witbee-modules-system:
restart: always
container_name: witbee-modules-system
build:
context: ./witbee/modules/system
dockerfile: dockerfile
ports:
- "9201:9201"
depends_on:
- witbee-redis
- witbee-mysql
witbee-modules-gen:
restart: always
container_name: witbee-modules-gen
build:
context: ./witbee/modules/gen
dockerfile: dockerfile
ports:
- "9202:9202"
depends_on:
- witbee-redis
- witbee-mysql
witbee-modules-job:
restart: always
container_name: witbee-modules-job
build:
context: ./witbee/modules/job
dockerfile: dockerfile
ports:
- "9203:9203"
depends_on:
- witbee-redis
- witbee-mysql
witbee-modules-file:
restart: always
container_name: witbee-modules-file
build:
context: ./witbee/modules/file
dockerfile: dockerfile
ports:
- "9300:9300"
volumes:
- ./witbee/uploadPath:/home/witbee/uploadPath
witbee-visual-monitor:
restart: always
container_name: witbee-visual-monitor
build:
context: ./witbee/visual/monitor
dockerfile: dockerfile
ports:
- "9100:9100"
deploy.sh
#!/bin/sh
# 使用说明,用来提示输入参数
usage()
echo "Usage: sh 执行脚本.sh [port|base|modules|modulesPlus|stop|rm]"
exit 1
# 开启所需端口
port()
firewall-cmd --add-port=8000/tcp --permanent
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --add-port=8848/tcp --permanent
firewall-cmd --add-port=9848/tcp --permanent
firewall-cmd --add-port=9849/tcp --permanent
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9201/tcp --permanent
firewall-cmd --add-port=9202/tcp --permanent
firewall-cmd --add-port=9203/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
service firewalld restart
# 项目文件夹
BASE_DIR="/home/witbee-cloud"
# 项目包名
PACKAGE_NAME="witbee-cloud.tgz"
# 启动基础环境(必须)
base()
docker-compose up -d witbee-mysql witbee-redis witbee-nacos
# 启动程序模块(必须)
modules()
echo "删除原始文件"
cd $BASE_DIR/docker
rm -f ./witbee/gateway/jar/** ./witbee/auth/jar/** ./witbee/modules/system/jar/**
echo "复制 gateway 模块"
cp ../witbee-gateway/target/witbee-gateway.jar ./witbee/gateway/jar
echo "复制 auth 模块"
cp ../witbee-auth/target/witbee-auth.jar ./witbee/auth/jar
echo "复制 system 模块"
cp ../witbee-modules/witbee-system/target/witbee-modules-system.jar ./witbee/modules/system/jar
echo "删除原始镜像"
docker-compose stop witbee-gateway witbee-auth witbee-modules-system && docker-compose rm -f witbee-gateway witbee-auth witbee-modules-system
echo "构建启动镜像"
docker-compose up -d --build witbee-gateway witbee-auth witbee-modules-system
# 启动程序模块(非必须)
modulesPlus()
echo "删除原始文件"
cd $BASE_DIR/docker
rm -f ./witbee/modules/file/jar/** ./witbee/modules/gen/jar/** ./witbee/modules/job/jar/**
echo "复制 file 模块"
cp ../witbee-modules/witbee-file/target/witbee-modules-file.jar ./witbee/modules/file/jar
echo "复制 gen 模块"
cp ../witbee-modules/witbee-gen/target/witbee-modules-gen.jar ./witbee/modules/gen/jar
echo "复制 job 模块"
cp ../witbee-modules/witbee-job/target/witbee-modules-job.jar ./witbee/modules/job/jar
echo "删除原始镜像"
docker-compose stop witbee-modules-file witbee-modules-gen witbee-modules-job && docker-compose rm -f witbee-modules-file witbee-modules-gen witbee-modules-job
echo "构建启动镜像"
docker-compose up -d --build witbee-modules-file witbee-modules-gen witbee-modules-job
# 关闭所有环境/模块
stop()
docker-compose stop
# 删除所有环境/模块
rm()
docker-compose rm
# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"port")
port
;;
"base")
base
;;
"modules")
modules
;;
"modulesPlus")
modulesPlus
;;
"stop")
stop
;;
"rm")
rm
;;
*)
usage
;;
esac
由于使用 docker-compose 部署可能会产生多余的镜像,可以使用 docker image prune 命令清理。也可能产生许多没用的储存卷,使用 docker volume rm $(docker volume ls -qf dangling=true) 命令清理。以上就是阿里云云效流水线自动化部署 ruoyi-cloud 微服务架构全部内容了,欢迎讨论!
阿里云云效devops流水线flow自动化部署docker项目
参考技术Ahttps://flow.aliyun.com/my?page=1Dockerfile1、新建流水线2、选择模板4、选择阿里云容器镜像服务仓库构建镜像https://cr.console.aliyun.com/cn-hangzhou/instances5、添加新任务选择Docker部署6、选择主机7、部署脚本8、保存并运行发布9、回... 查看详情
ci/cd系列之阿里云云效2020应用篇(代码片段)
目录前言实战制品仓库maven配置项目pom配置代码管理流水线参考资料前言前不久登录阿里云后台,看到云效的介绍,出于好奇便点进去看了看,刚开始以为云效是类似Jenkins的一套自动化部署方案,了解之后发现云效的野心很大哦... 查看详情
新鲜出炉的阿里云云效平台初步测评
...公共云、专有云和混合云多种部署形态,通过人工智能、自动化技术的应用提升开发者的研发效能,持续交付有效价值。「阿里云云效」将于2020年4月23起开放面向企业和个人开发者的公测,,果断抢先体验一番~二、测评1、进入... 查看详情
项目版本管理的最佳实践:云效飞流flow篇
...阿吉同学的最佳实践3.2.1功能分支(feature分支)的创建3.2.2流水线的创建3.2.3日常 查看详情
阿里云云效如何保障双11大型项目管理
每一年双11对阿里巴巴来说都是一个练兵场,一次更大规模技术创新、产品迭代、协同研发的练兵场。在2018年双11的“练兵场上”,阿里云云效——一站式企业协同研发平台支持着阿里巴巴众多部门、百个核心产品、千个垂直项... 查看详情
阿里云云效如何保障双11大型项目管理
每一年双11对阿里巴巴来说都是一个练兵场,一次更大规模技术创新、产品迭代、协同研发的练兵场。在2018年双11的“练兵场上”,阿里云云效——一站式企业协同研发平台支持着阿里巴巴众多部门、百个核心产品、千个垂直项... 查看详情
阿里云云效首批通过「可信云-软件研发效能度量平台」先进级评估
...所长何宝宏公布了软件研发效能度量平台首批评估结果。阿里云云效以满分成绩顺利首批通过“可信云-软件研发效能度量平台”先进级评估;云效通过了由中国信通院组织的研发效能度量平台能力测评, 查看详情
阿里云云效首批通过「可信云-软件研发效能度量平台」先进级评估
...所长何宝宏公布了软件研发效能度量平台首批评估结果。阿里云云效以满分成绩顺利首批通过“可信云-软件研发效能度量平台”先进级评估;云效通过了由中国信通院组织的研发效能度量平台能力测评, 查看详情
阿里云云效发布研发协同工具,以新的产研协同工作方式助力实现bizdevops
简介:2021云栖大会云效BizDevOps分论坛上,阿里云云效技术负责人陈鑫发布阿里云云效产品研发协同工具支撑ALPD理论,以新的产研协同工作方式助力实现BizDevOps。编者按:10月21日,2021云栖大会云效BizDevOps分论... 查看详情
阿里云云效技术专家分享:云原生开发调测及可靠发布解决方案
简介: 高效开发、稳健发布。在云原生环境中,基于Kubernetes的工具链一方面简化了开发者的许多日常琐碎,另一方面也带来了许多新的概念和工作方式的改变。本篇文章将聚焦于云原生基础设施,谈谈如何在面... 查看详情
阿里云云效首批通过「可信云-软件研发效能度量平台」先进级评估
...所长何宝宏公布了软件研发效能度量平台首批评估结果。阿里云云效以满分成绩顺利首批通过“可信云-软件研发效能度量平台”先进级评估;云效通过了由中国信通院组织的研发效能度量平台能力测评,满足全部3大能力... 查看详情
企业级docker+jenkins+gitlab自动化流水线构建(代码片段)
随着DevOps理念和敏捷理念的发展,我们都希望通过自动化技术,加快项目的迭代。尤其是当使用微服务系统架构之后,功能的叠加,对应服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。因此,传统... 查看详情
你了解部署流水线吗?
本文分享自华为云社区《你了解部署流水线吗?》,作者:敏捷小智。什么是部署流水线部署流水线,又称持续集成流水线、构建流水线,是指软件从制品库到用户的自动化交付过程。通常包括代码提交、构... 查看详情
持续集成+自动化部署[代码流水线管理及jenkins和gitlab集成]
持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]标签(空格分隔):Jenkins一、代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目。如果使用jenkins构建完成后,开发构建项目需要一... 查看详情
jenkins流水线自动化部署手动下载安装插件包
如果有些插件不能通过可选插件安装,可以进行选择高级并上传插件包,插件包链接地址为:http://updates.jenkins-ci.org/download/plugins/同时在高级中可以更换下载源,能够加快下载速度:https://mirrors.tuna.tsinghua.edu.cn/j本文来自博客园... 查看详情
使用jenkins流水线完成自动部署服务到k8s(代码片段)
说明通过本文章,您可以轻松入门cicd过程。本地测试环境为springboot微服务项目。用户提交代码到gitlab,触发jenkins拉取gitllab上的代码,然后完成编译构建成jar包,同步完成sonarsqube代码质量检测。然后在jenkins内部... 查看详情
自动化运维:如何零停机构建与部署项目
本文,我们将向您展示如何配置一个流水线,该流水线将在零停机的情况下构建、测试和部署项目。零停机是一种部署技术,可让您在此过程中通过终端用户完全更新网站。请确保在您服务器上安装SSH,因为我们需要使... 查看详情
jenkins与docker的自动化ci/cd流水线实战(代码片段)
Jenkins与Docker的自动化CI/CD流水线实战标签(空格分隔):docker的部分一:什么是CI/CD二:发布流程设计三:部署Git仓库并上传测试代码一:什么是CI/CD持续集成(ContinuousIntegration,CI):代码合并、构建、部署、测试都在一起,不... 查看详情