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

Bitbucket Pipelines中用docker-maven-plugin推送镜像到DockerHub配置问题

问题解决方法

核心报错原因

你本地环境有Docker daemon正常监听对应端口,但Bitbucket Pipelines默认未启用Docker服务,且没有对应daemon进程监听localhost:2375,所以触发连接拒绝报错。

1. 调整pom.xml配置

无需在<dockerHost>标签硬编码地址,fabric8 docker-maven-plugin默认会自动读取系统环境变量中的Docker相关配置,直接删除pom中的<dockerHost>???????????</dockerHost>行即可同时兼容本地和Bitbucket环境。
同时不要硬编码DockerHub凭证,调整为读取Maven参数避免敏感信息泄露:

<plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <configuration>
        <verbose>true</verbose>
        <pushRegistry>true</pushRegistry>
        <authConfig>
            <username>${docker.hub.username}</username>
            <password>${docker.hub.password}</password>
        </authConfig>
        <images>
            <image>
                <registry>registry.hub.docker.com</registry>
                <name>${dockerhub.repository}</name>
                <build>
                    <dockerFileDir>${project.basedir}</dockerFileDir>
                    <tags>
                        <tag>${docker.tag}</tag>
                    </tags>
                    <noCache>true</noCache>
                </build>
            </image>
        </images>
    </configuration>
    <executions>
    ...
</plugin>

2. 配置bitbucket-pipelines.yml启用Docker服务

在你的流水线配置中为构建步骤绑定Docker服务,Bitbucket会自动注入DOCKER_HOST等环境变量供插件读取:

# 定义Docker服务的内存配置,避免构建大镜像时OOM
definitions:
  services:
    docker:
      memory: 2048

pipelines:
  default:
    - step:
        name: 构建推送Docker镜像
        # 绑定Docker服务
        services:
          - docker
        script:
          # 执行Maven命令时传入DockerHub凭证
          - mvn clean package docker:build docker:push -Ddocker.hub.username=$DOCKER_HUB_USERNAME -Ddocker.hub.password=$DOCKER_HUB_PASSWORD

3. 配置Bitbucket仓库凭证变量

进入Bitbucket对应仓库 -> 「仓库设置」 -> 「仓库变量」,添加两个加密变量:

  • DOCKER_HUB_USERNAME:DockerHub登录用户名
  • DOCKER_HUB_PASSWORD:DockerHub登录密码,推荐使用权限受限的个人访问令牌替代明文密码

可选强制指定dockerHost的配置

如果你需要显式配置<dockerHost>标签,可以设置为读取环境变量即可:

<dockerHost>${env.DOCKER_HOST}</dockerHost>

Bitbucket Pipelines中Docker服务默认的DOCKER_HOST值为tcp://127.0.0.1:2375,无需额外配置TLS校验。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:27:02