You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在M1芯片Mac上运行QueryDSL项目的测试套件

Apple Silicon Mac 运行 QueryDSL 测试套件解决方案

linux/arm64/v8报错的核心原因是QueryDSL官方提供的docker-compose配置中的数据库镜像大多仅适配x86架构,Apple Silicon系列Mac默认的arm64架构无法直接运行,按以下步骤操作即可解决:

1. 开启Docker Rosetta 转译支持

打开Docker Desktop设置,进入「Features in Development」页面,勾选 Use Rosetta for x86/64 emulation on Apple Silicon,保存设置后重启Docker。这一步可以让Docker通过转译运行绝大多数x86架构的镜像。

2. 修改docker-compose.yml配置

给所有数据库服务添加platform参数,强制指定使用x86架构运行,示例如下:

services:
  mysql:
    platform: linux/amd64
    image: mysql:5.6.38
    # 其余原有配置保持不变
  postgresql:
    platform: linux/amd64
    image: mdillon/postgis:9.3-alpine
    # 其余原有配置保持不变
  # 所有其他服务(oracle、cubrid、mongo、db2、sqlserver、firebird等)都统一添加platform: linux/amd64配置

3. 替换无兼容版本的老旧镜像

部分过老的镜像即便开启转译也无法正常运行,建议替换为兼容arm64架构的近似版本,不会影响测试结果:

  • mysql:5.6.38 替换为 mysql:5.7 或 mariadb:10.3,二者和mysql 5.6语法高度兼容
  • mdillon/postgis:9.3-alpine 替换为 postgis/postgis:13-3.3-alpine,官方维护的postgis镜像,同时支持x86和arm架构
  • mongo:3.6.1 替换为 mongo:4.4,兼容arm架构且接口无差异

4. 跳过兼容性差的非必要数据库(可选)

Cubrid、Oracle 11g、DB2这三类数据库的x86镜像转译后稳定性极差,如果你不需要针对这三类数据库做测试,可直接只启动你需要的服务:

docker-compose up -d mysql postgresql mongo sqlserver firebird

启动后执行docker-compose ps检查所有服务的状态为healthy即可正常运行测试。如果仅需测试特定模块,也可在Maven构建命令中指定排除对应数据库的测试用例。

内容的提问来源于stack exchange,提问作者Lisa Dina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:24:03