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

Docker部署集成Testcontainers的Spring应用出现无法连接Ryuk错误

故障排查及解决办法

核心问题1:依赖作用域配置错误

Testcontainers为测试专用工具,你当前错误将其配置为生产运行时依赖,导致生产Jar包中包含Testcontainers代码,启动时自动初始化并尝试连接Docker创建资源,触发Ryuk连接报错。
修改build.gradle依赖配置,将依赖作用域从implementation调整为testImplementation,仅测试环境生效:

testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.testcontainers:postgresql'

修改后重新打包构建镜像,生产启动时不会加载Testcontainers相关逻辑,报错直接消除。

特殊场景:需要在容器内运行Testcontainers(如CI自动化测试)

如果你的业务场景确实需要在容器内部运行Testcontainers逻辑,可选择以下任意一种方案解决macOS Docker Desktop的网络兼容性问题:

  • 方案1:添加环境变量指定宿主机地址
    启动容器时新增TESTCONTAINERS_HOST_OVERRIDE环境变量,指向Docker Desktop内置的宿主机域名:
    docker run -v /var/run/docker.sock:/var/run/docker.sock \
      -e TESTCONTAINERS_HOST_OVERRIDE=host.docker.internal \
      -p 8080:8080 myapplication:latest
    
  • 方案2:临时禁用Ryuk资源回收(仅测试场景可用)
    若不需要自动清理测试容器,可禁用Ryuk组件规避连接问题,注意该方案会导致废弃容器残留,需要手动清理:
    docker run -v /var/run/docker.sock:/var/run/docker.sock \
      -e TESTCONTAINERS_RYUK_DISABLED=true \
      -p 8080:8080 myapplication:latest
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:36:06