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

如何通过Shell从Bitbucket仓库执行docker load并解决Bamboo流水线报错

问题根因

你当前遇到的第一个报错是tar文件路径拼接错误,同时脚本中还存在docker tag命令参数缺失的隐藏问题,具体修复方案如下:

1. 修复tar文件加载路径

你Bitbucket中ifhc仓库的tar文件路径是/front-end/aia-presales-frontend-sit.tar,Bamboo将仓库代码检出到工作目录后,仓库根目录内容直接对应工作目录根目录,不需要额外拼接/ifhc前缀。
将原来的加载命令:

docker image load -i ${bamboo.build.working.directory}/ifhc/front-end/aia-presales-frontend-sit.tar

修改为:

docker image load -i ${bamboo.build.working.directory}/front-end/aia-presales-frontend-sit.tar

2. 补充路径调试逻辑(可选,用于排查其他路径问题)

如果你修改路径后仍然报错,可以在脚本set -e -x行后新增以下命令,打印实际工作目录结构确认文件位置:

# 打印当前工作目录
pwd
# 递归打印工作目录下所有文件
ls -R ${bamboo.build.working.directory}

3. 修复docker tag命令缺失参数问题

当前脚本中的docker tag命令只写了目标镜像名,缺少源镜像参数,会执行失败:

# 错误写法:缺少源镜像参数
docker tag ${bamboo.acr_repository}/frontend:v${bamboo.buildNumber}

你需要先确认tar包加载后生成的源镜像名称/标签,可在docker load命令后新增docker images打印加载后的镜像列表,假设加载后的源镜像是frontend:latest,修改为:

# 示例:将源镜像frontend:latest 重命名为ACR目标镜像
docker tag frontend:latest ${bamboo.acr_repository}/frontend:v${bamboo.buildNumber}

其他排查点

  • 确认Bamboo检出任务没有配置稀疏检出,过滤掉了tar文件
  • 如果tar文件是通过Bitbucket LFS存储的,需要在Bamboo检出任务中开启LFS拉取配置,否则拉取到的只是指针文件,无法正常加载
  • 确认Bamboo执行用户对工作目录下的tar文件有读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:00:04