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

如何在BitBucket Pipeline中配置Bazel测试以运行Docker容器?

解决BitBucket Pipeline中Bazel测试无法连接Docker Daemon的问题

常见原因及修复方案

1. 关闭Bazel沙箱隔离

Bazel默认沙箱会隔离测试环境,导致无法访问外部Docker Daemon。两种解决方式:

  • 单个测试关闭沙箱:在对应测试的BUILD文件中添加配置:
    py_test(
        name = "your_integration_test",
        srcs = ["test_file.py"],
        sandboxed = False,
        # 其他必要配置
    )
    
  • 全局关闭沙箱:在执行测试的命令中添加参数:
    bazel test //... --spawn_strategy=standalone
    

2. 修复Docker访问权限

Pipeline运行用户可能没有访问/var/run/docker.sock的权限,在脚本中添加以下命令:

sudo chmod 666 /var/run/docker.sock
# 刷新权限避免重新登录
newgrp docker

之后再执行bazel test //...

3. 等待Docker Daemon完全就绪

Docker服务在Pipeline中启动可能有延迟,添加等待逻辑确保Daemon就绪:

until docker info; do
  echo "等待Docker Daemon启动..."
  sleep 2
done
bazel test //...

4. 确认DOCKER_HOST配置

显式指定正确的Docker服务地址,BitBucket Pipeline中默认可用tcp://localhost:2375:

export DOCKER_HOST=tcp://localhost:2375
bazel test //...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:52:41