matrixdotorg/sytest这些Dockerfile创建用于运行SyTest的容器,支持多种配置。SyTest本身不包含在这些镜像中,但包含其依赖。
matrixdotorg/sytest:基础容器,已安装SyTest依赖
bionic、buster或testingmatrixdotorg/sytest-synapse:针对Synapse运行SyTest
bionic、buster或testingmatrixdotorg/sytest-dendrite:go113:在Go 1.13上针对Dendrite运行SyTest
sytest-synapse镜像要求将Synapse git仓库的检出目录挂载到/src;服务器日志将写入/logs,建议同时挂载卷到该目录。
bashdocker run --rm -it -v /path/to/synapse:/src:ro -v /path/to/日志存放目录:/logs matrixdotorg/sytest-synapse:buster
通过-e设置以下变量控制测试:
POSTGRES:设为非空值以使用PostgreSQL数据库(默认sqlite)WORKERS:设为非空值以测试工作模式部署(需POSTGRES,默认单体模式)REDIS:设为非空值以使用redis复制(需WORKERS,替代旧TCP方式)OFFLINE:设为非空值以避免更新Python/Perl依赖BLACKLIST:设为非空值以修改默认黑名单文件(路径相对于Synapse目录)TIMEOUT_FACTOR:测试超时时间的乘数工作模式(TCP复制):
bashdocker run --rm -it -e POSTGRES=1 -e WORKERS=1 -v /path/to/synapse:/src:ro \ -v /path/to/日志存放目录:/logs matrixdotorg/sytest-synapse:buster
工作模式(Redis):
bashdocker run --rm -it -e POSTGRES=1 -e WORKERS=1 -e REDIS=1 \ -v /path/to/synapse:/src:ro \ -v /path/to/日志存放目录:/logs \ matrixdotorg/sytest-synapse:buster
sytest-dendrite镜像要求将Dendrite git仓库的检出目录挂载到/src;服务器日志写入/logs,建议挂载卷到该目录。
bashdocker run --rm -it -v /path/to/dendrite:/src:ro -v /path/to/日志存放目录:/logs matrixdotorg/sytest-dendrite
默认情况下,镜像会下载对应分支的Sytest(通常与目标homeserver同名分支或develop分支)。若需使用本地Sytest检出目录,可挂载到容器的/sytest文件夹:
bashdocker run --rm -it -v /path/to/synapse:/src:ro -v /path/to/日志存放目录:/logs \ -v /path/to/code/sytest:/sytest:ro matrixdotorg/sytest-synapse:buster
可在docker命令末尾添加参数以传递给sytest。例如运行单个测试文件:
bashdocker run --rm -it ... matrixdotorg/sytest-synapse:buster tests/20profile-events.pl
通过以下命令构建并推送容器:
bash./build.sh # 构建容器 ./push.sh # 推送到Docker Hub
设置PLUGINS环境变量以自动加载插件,值为一个或多个tar.gz文件URL(空格分隔)。引导脚本会在插件中搜索${SYTEST_TARGET}_sytest.sh以执行自定义脚本。
bashdocker run --rm -it -e PLUGINS="[***] [***]"
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务