绥中做网站,长宁网站建设公司,富阳建设局网站,如何做网站经营性备案前言
Metersphere部署过程中遇到的问题有点多#xff0c;原因是其容器的架构蛮复杂的#xff0c;比较容易踩坑#xff0c;所以记录一下。
介绍
MeterSphere 是开源持续测试平台#xff0c;遵循 GPL v3 开源许可协议#xff0c;涵盖测试管理、接口测试、UI 测试和性能测…前言
Metersphere部署过程中遇到的问题有点多原因是其容器的架构蛮复杂的比较容易踩坑所以记录一下。
介绍
MeterSphere 是开源持续测试平台遵循 GPL v3 开源许可协议涵盖测试管理、接口测试、UI 测试和性能测试等功能全面兼容 JMeter、Selenium 等主流开源标准有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试加速高质量的软件交付。
主页https://metersphere.io/
源码https://github.com/metersphere/metersphere
前置环境
Ubuntu 20.04 Docker version 27.3.1 docker-compose version 1.27.4 openjdk version “17.0.13”
MeterSphere-v2.4.0安装部署
首先以v2.4.0为例直接给出我的sh
if [ $(id -u) -ne 0 ]; thenecho 此脚本需要root权限请使用sudo执行。exit 1
fiwget https://github.com/metersphere/metersphere/releases/download/v2.4.0/metersphere-online-installer-v2.4.0.tar.gz --no-check-certificatetar zxvf metersphere-online-installer-v2.4.0.tar.gzcd metersphere-online-installer-v2.4.0#启用工作台
#CONFIG_FILEinstall.conf
#echo 修改配置文件...
#sed -i s/^MS_UI_ENABLEDfalse$/MS_UI_ENABLEDtrue/ $CONFIG_FILE
#sed -i s/^MS_WORKSTATION_ENABLEDfalse$/MS_WORKSTATION_ENABLEDtrue/ $CONFIG_FILE#MYSQL降级
#sed -i s/\${MS_IMAGE_PREFIX}\/mysql:8.0.33/\${MS_IMAGE_PREFIX}\/mysql:8.0.30/ metersphere/docker-compose-mysql.ymlsudo ./install.shmsctl status可以使用命令msctl status检查服务运行情况正确部署后的输出如下所示 Name Command State Ports
------------------------------------------------------------------------------------------------------
api-test /deployments/run-java.sh Up (healthy) 0.0.0.0:10000-10000/tcp,:::10000-10000/tcp, 0.0.0.0:10001-10001/tcp,:::10001-10001/tcp, 0.0.0.0:10002-10002/tcp,:::10002-10002/tcp, 0.0.0.0:10003-10003/tcp,:::10003-10003/tcp, 0.0.0.0:10004-10004/tcp,:::10004-10004/tcp, 0.0.0.0:10005-10005/tcp,:::10005-10005/tcp, 0.0.0.0:10006-10006/tcp,:::10006-10006/tcp, 0.0.0.0:10007-10007/tcp,:::10007-10007/tcp, 0.0.0.0:10008-10008/tcp,:::10008-10008/tcp, 0.0.0.0:10009-10009/tcp,:::10009-10009/tcp, 0.0.0.0:10010-10010/tcp,:::10010-10010/tcp
eureka /deployments/run-java.sh Up (healthy)
gateway /deployments/run-java.sh Up (healthy) 0.0.0.0:8081-8000/tcp,:::8081-8000/tcp
kafka /opt/bitnami/scripts/kafka ... Up (healthy) 0.0.0.0:9092-9092/tcp,:::9092-9092/tcp
minio /usr/bin/docker-entrypoint ... Up (healthy) 0.0.0.0:9000-9000/tcp,:::9000-9000/tcp, 0.0.0.0:9001-9001/tcp,:::9001-9001/tcp
ms-data-streaming /deployments/run-java.sh Up (healthy)
ms-node-controller /deployments/run-java.sh Up (healthy) 0.0.0.0:8082-8082/tcp,:::8082-8082/tcp, 0.0.0.0:9100-9100/tcp,:::9100-9100/tcp
ms-prometheus /bin/prometheus --config.f ... Up (healthy) 0.0.0.0:9090-9090/tcp,:::9090-9090/tcp
mysql docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3307-3306/tcp,:::3307-3306/tcp, 33060/tcp
nodeexporter /bin/node_exporter --path. ... Up (healthy)
performance-test /deployments/run-java.sh Up (healthy)
project-management /deployments/run-java.sh Up (healthy)
redis docker-entrypoint.sh redis ... Up (healthy) 0.0.0.0:6379-6379/tcp,:::6379-6379/tcp
report-stat /deployments/run-java.sh Up (healthy)
system-setting /deployments/run-java.sh Up (healthy)
test-track /deployments/run-java.sh Up (healthy) URL: http://$LOCAL_IP:8081
用户名: admin
初始密码: metersphere然而整个过程并非这么顺利的过程中会出现各种各样的问题尤其是在服务器部署的情况下我的建议是时刻检查安装目录在哪里通过Debug找到到底是哪里的conf文件在生效免得乱改一通发现压根没从这里读配置。。。 接下来说一些比较好解决的问题
v2.4.0 QA
Q部分容器例如api-test等起不来msctl status显示mysql容器一直在restarting
$ msctl statusName Command State Ports
------------------------------------------------------------------------------------------------------------------------------------------
eureka /deployments/run-java.sh Up (healthy)
gateway /deployments/run-java.sh Up (healthy) 0.0.0.0:8081-8000/tcp,:::8081-8000/tcp
kafka /opt/bitnami/scripts/kafka ... Up (healthy) 0.0.0.0:9092-9092/tcp,:::9092-9092/tcp
minio /usr/bin/docker-entrypoint ... Up (healthy) 0.0.0.0:9000-9000/tcp,:::9000-9000/tcp, 0.0.0.0:9001-9001/tcp,:::9001-9001/tcp
ms-data-streaming /deployments/run-java.sh Up (healthy)
ms-node-controller /deployments/run-java.sh Up (healthy) 0.0.0.0:8082-8082/tcp,:::8082-8082/tcp, 0.0.0.0:9100-9100/tcp,:::9100-9100/tcp
ms-prometheus /bin/prometheus --config.f ... Up (healthy) 0.0.0.0:9090-9090/tcp,:::9090-9090/tcp
mysql docker-entrypoint.sh mysqld Restarting
nodeexporter /bin/node_exporter --path. ... Up (healthy)
redis docker-entrypoint.sh redis ... Up (healthy) 0.0.0.0:6379-6379/tcp,:::6379-6379/tcp A这个问题一般出现在之前安装过高版本Metersphere的情况看一下日志
$ docker logs mysql
2025-01-09 04:58:2000:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2025-01-09 04:58:2000:00 [Note] [Entrypoint]: Switching to dedicated user mysql
2025-01-09 04:58:2000:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
/var/lib/mysql/mysql.sock - /var/run/mysqld/mysqld.sock
2025-01-09T04:58:20.857320Z 0 [Warning] [MY-011068] [Server] The syntax --skip-host-cache is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size0 instead.
2025-01-09T04:58:20.857349Z 0 [Warning] [MY-011068] [Server] The syntax expire-logs-days is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2025-01-09T04:58:20.857466Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2025-01-09T04:58:20.861214Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-01-09T04:58:21.299938Z 1 [ERROR] [MY-013171] [InnoDB] Cannot boot server version 80030 on data directory built by version 80033. Downgrade is not supported
mysqld: Cant open file: mysql.ibd (errno: 0 - )
2025-01-09T04:58:21.594261Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2025-01-09T04:58:21.594352Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2025-01-09T04:58:21.594359Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-01-09T04:58:21.594589Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.30) MySQL Community Server - GPL.可以看到是mysql版本不匹配问题修改metersphere-online-installer-v2.x.x/metersphere/docker-compose-mysql.yml进行降级
version: 2.1
services:mysql:image: ${MS_IMAGE_PREFIX}/mysql:8.0.33container_name: mysqlhealthcheck:test: [CMD, mysqladmin, ping, -h, localhost, -uroot, -p${MS_MYSQL_PASSWORD}]interval: 6stimeout: 5sretries: 50environment:MYSQL_DATABASE: ${MS_MYSQL_DB}MYSQL_ROOT_PASSWORD: ${MS_MYSQL_PASSWORD}ports:- 3307:3306volumes:- ${MS_BASE}/metersphere/conf/my.cnf:/etc/mysql/conf.d/my.cnf- ${MS_BASE}/metersphere/bin/mysql:/docker-entrypoint-initdb.d/- ms-mysql-data:/var/lib/mysqlnetworks:- ms-networkrestart: alwayssystem-setting:depends_on:mysql:condition: service_healthyvolumes:ms-mysql-data:driver_opts:type: nonedevice: ${MS_BASE}/metersphere/data/mysqlo: bind修改之后重新安装即可当然也可以直接解除start_in_docker.sh里MYSQL降级部分的注释后重新执行即可。
sed -i s/\${MS_IMAGE_PREFIX}\/mysql:8.0.33/\${MS_IMAGE_PREFIX}\/mysql:8.0.30/ metersphere/docker-compose-mysql.ymlQ工作台未启用功能不齐全左侧边栏只显示两种功能。
A修改install.conf如下内容
MS_UI_ENABLEDtrue
MS_WORKSTATION_ENABLEDtrue执行msctl reload后即可看到工作台容器已经启动便可以正常使用访问UI后可以看到左侧边栏已经显示全面。当然也可以直接解除start_in_docker.sh里启用工作台部分的注释后重新执行即可。
CONFIG_FILEinstall.conf
sed -i s/^MS_UI_ENABLEDfalse$/MS_UI_ENABLEDtrue/ $CONFIG_FILE
sed -i s/^MS_WORKSTATION_ENABLEDfalse$/MS_WORKSTATION_ENABLEDtrue/ $CONFIG_FILEMeterSphere-v2.10.1-lts安装部署
再拿v2.10.1-lts版本举例
$ wget https://github.com/metersphere/metersphere/releases/download/v2.10.1-lts/metersphere-online-installer-v2.10.1-lts.tar.gz --no-check-certificate
$ tar zxvf metersphere-online-installer-v2.10.1-lts.tar.gz
$ cd metersphere-online-installer-v2.10.1-lts
$ sudo ./install.sh
$ msctl statusName Command State Ports
--------------------------------------------------------------------------------------
api-test /deployments/run-java.sh Up (healthy) 0.0.0.0:10000-10000/tcp,:::10000-10000/tcp, 0.0.0.0:10001-10001/tcp,:::10001-10001/tcp, 0.0.0.0:10002-10002/tcp,:::10002-10002/tcp, 0.0.0.0:10003-10003/tcp,:::10003-10003/tcp, 0.0.0.0:10004-10004/tcp,:::10004-10004/tcp, 0.0.0.0:10005-10005/tcp,:::10005-10005/tcp, 0.0.0.0:10006-10006/tcp,:::10006-10006/tcp, 0.0.0.0:10007-10007/tcp,:::10007-10007/tcp, 0.0.0.0:10008-10008/tcp,:::10008-10008/tcp, 0.0.0.0:10009-10009/tcp,:::10009-10009/tcp, 0.0.0.0:10010-10010/tcp,:::10010-10010/tcp
eureka /deployments/run-java.sh Up (healthy)
gateway /deployments/run-java.sh Up (healthy) 0.0.0.0:8081-8000/tcp,:::8081-8000/tcp
kafka /opt/bitnami/scripts/kaf Up (healthy) 0.0.0.0:9092-9092/tcp,ka ... :::9092-9092/tcp
minio /usr/bin/docker- Up (healthy) 0.0.0.0:9000-9000/tcp,entrypoint ... :::9000-9000/tcp, 0.0.0.0:9001-9001/tcp,:::9001-9001/tcp
ms-data-streaming /deployments/run-java.sh Up (healthy)
ms-node-controller sh -c sed -i Up (healthy) 0.0.0.0:8082-8082/tcp,s/:101:/:136 ... :::8082-8082/tcp, 0.0.0.0:9100-9100/tcp,:::9100-9100/tcp
ms-prometheus /bin/prometheus Up (healthy) 0.0.0.0:9091-9090/tcp,--config.f ... :::9091-9090/tcp
mysql docker-entrypoint.sh Up (healthy) 0.0.0.0:3306-3306/tcp,mysqld :::3306-3306/tcp, 33060/tcp
nodeexporter /bin/node_exporter Up (healthy) --path. ...
performance-test /deployments/run-java.sh Up (healthy)
project-management /deployments/run-java.sh Up (healthy)
redis docker-entrypoint.sh Up (healthy) 0.0.0.0:6379-6379/tcp,redis ... :::6379-6379/tcp
report-stat /deployments/run-java.sh Up (healthy)
system-setting /deployments/run-java.sh Up (healthy)
test-track /deployments/run-java.sh Up (healthy)
workstation /deployments/run-java.sh Up (healthy) v2.10.1-lts Debug
Debug1访问Web UI有{success:false,message:401 UNAUTHORIZED \Not found session, Please Login again.\,data:null}报错一定要等待所有容器Up并healthy状态后再等5min访问Web UI不要中途切换。
Debug29090端口号占用问题在docker-compose-prometheus.yml和install.conf修改为9091即可。
# Debug3: Additionally
$ msctl restart gateway
$ msctl restart workstation
$ msctl restart prometheus