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

BitBucket Pipelines执行mvn spring-boot:build-image时授权失败求助

问题描述

在BitBucket Pipeline中执行mvn spring-boot:build-image构建Spring Boot 3.1.5容器镜像时,触发以下错误:

authorization denied by plugin pipelines: -v only supports $BITBUCKET_CLONE_DIR and its subdirectories

问题本质是Spring Boot的Buildpack插件默认会使用宿主机器的临时目录存储构建缓存和中间文件,但BitBucket Pipeline的Docker插件限制卷挂载只能指向$BITBUCKET_CLONE_DIR(即Pipeline的workspace)及其子目录。

解决方案

通过配置Buildpack的工作目录和缓存路径,强制所有操作都在$BITBUCKET_CLONE_DIR下进行,有两种实现方式:

方式1:命令行参数直接指定

执行构建命令时添加以下参数,覆盖Buildpack默认临时目录:

mvn spring-boot:build-image \
  -Dspring-boot.build-image.builder=paketobuildpacks/builder-jammy-base:latest \
  -Dspring-boot.build-image.temp-dir=$BITBUCKET_CLONE_DIR/.buildpack-temp \
  -Dspring-boot.build-image.cache-dir=$BITBUCKET_CLONE_DIR/.buildpack-cache
  • temp-dir:指定Buildpack构建时的临时文件存储目录
  • cache-dir:指定构建缓存目录,后续构建可复用缓存提速

方式2:pom.xml全局配置

若不想每次命令都加参数,可在项目pom.xml中添加Spring Boot插件配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <image>
          <builder>paketobuildpacks/builder-jammy-base:latest</builder>
          <tempDir>${BITBUCKET_CLONE_DIR}/.buildpack-temp</tempDir>
          <cacheDir>${BITBUCKET_CLONE_DIR}/.buildpack-cache</cacheDir>
        </image>
      </configuration>
    </plugin>
  </plugins>
</build>

配置完成后直接执行mvn spring-boot:build-image即可。

额外优化:清理临时文件

为避免Pipeline workspace残留过多文件,可在构建完成后添加清理步骤:

rm -rf $BITBUCKET_CLONE_DIR/.buildpack-temp $BITBUCKET_CLONE_DIR/.buildpack-cache
验证说明

配置后,Buildpack的所有卷挂载操作都会指向$BITBUCKET_CLONE_DIR下的子目录,符合BitBucket Pipeline的插件权限限制,即可正常完成镜像构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:17:06