sonic是最近很火的开源云真机平台,支持分布式部署,功能也非常丰富,我们需要一套环境远程执行自动化测试,于是,就部署了一套。当然,官方有项目详细的部署文档,本文结合我们自己的情况选择一台Linux主机上完成整个部署。
官网:https://sonic-cloud.gitee.io/#/Home
github: https://github.com/SonicCloudOrg
1、安装docker和安装mysql
- yum install -y docker
-
- #同时安装docker-compose否则运行出错
- yum install -y docker-compose
安装mysql:https://www.runoob.com/mysql/mysql-install.html
2、下载 sonic 平台
sonic把服务都制作成了docker-compose.yaml ,这大大降低了服务部署的难度。
下载sonic-server-simple ,该项目用于启动sonic前后端服务。
- > wget https://github.com/SonicCloudOrg/sonic-server-simple/archive/refs/tags/v1.3.2-release.tar.gz # 下载
- > tar -zxvf v1.3.2-release.tar.gz # 解压
- > cd sonic-server-simple-1.3.2-release # 进入目录
- > vim docker-compost.yaml # 编辑文件内容
3、没有用到Mysql编辑文件如下:
- ...省略...
- services:
- # 从这里开始加
- sonic-mysql:
- image: "mysql:5.7"
- hostname: sonic-mysql
- command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- environment:
- - MYSQL_ROOT_PASSWORD=Sonic!@#123
- - MYSQL_DATABASE=sonic
- volumes:
- - ./mysql/data:/var/lib/mysql
- ports:
- - "3307:3306"
- networks:
- - sonic-network
- # 这里结束,然后下面还需要改一下HOST
- sonic-server-simple:
- image: "sonicorg/sonic-server-simple:v1.3.2-release"
- container_name: sonic-server-simple
- environment:
- - MYSQL_HOST=sonic-mysql #这里的HOST要改成sonic-mysql哦
- ...省略...
编辑内容:
- version: '3'
- services:
- sonic-server-simple:
- image: "sonicorg/sonic-server-simple:v1.3.2-release"
- environment:
- #以下为MySql配置,localhost请替换为自己MySql服务的ipv4地址
- - MYSQL_HOST=10.22.33.44 #需要修改
- - MYSQL_PORT=3360 #需要修改
- - MYSQL_DATABASE=sonic #需要修改
- - MYSQL_USERNAME=root #需要修改
- - MYSQL_PASSWORD=test@123 #需要修改
- #在服务器部署的话,localhost改为服务器ip,port更改为sonic-server-simple暴露的port(一般不变)
- - SONIC_API_HOST=10.22.33.44 #需要修改
- - SONIC_API_PORT=8094
- - SONIC_NETTY_PORT=8095
- #token加密的key值
- - SECRET_KEY=sonic
- #身份验证token有效天数
- - EXPIRE_DAY=14
- #前端页面访问地址,不填默认为http://localhost:3000
- - CLIENT_HOST=http://localhost:3000
- #文件保留天数(指测试过程产生的文件,包括图片、录像等等)
- - FILE_KEEP_DAY=60
- #测试结果保留天数
- - RESULT_KEEP_DAY=60
- #以下均为Cron表达式
- #清理文件定时任务
- - FILE_CRON=0 0 12 * * ?
- #清理测试结果定时任务
- - RESULT_CRON=0 0 12 * * ?
- #发送日报定时任务
- - DAY_CRON=0 0 10 * * ?
- #发送周报定时任务
- - WEEK_CRON=0 0 10 ? * Mon
- networks:
- - sonic-network
- volumes:
- - files:/keepFiles/
- - files:/imageFiles/
- - files:/recordFiles/
- - files:/packageFiles/
- - files:/logs/
- ports:
- - "8094:8094"
- - "8095:8095"
- sonic-client-web:
- image: "sonicorg/sonic-client-web:v1.3.2-release"
- environment:
- #192.168.1.1改为你的ipv4,port更改为sonic-server-simple暴露的port(一般不变)
- - SONIC_API_HOST=10.22.33.44 #需要修改
- - SONIC_API_PORT=8094
- networks:
- - sonic-network
- ports:
- - "3000:80"
-
- volumes:
- files:
-
- networks:
- sonic-network:
- driver: bridge
4、进入目录运行程度
docker-compose up -d
5、如果运行docker-compose,报错:-bash: docker-compose: 未找到命令
- yum install 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
-
- ##检测是否成功
- docker-compose version
6、运行行平台:IP:3000