无法从詹金斯保存Docker映像

时间:2020-06-01 08:51:54

标签: docker shell jenkins automation

我正在使用Jenkins自由式构建作业,我的shell基本上完成了一个简单的工作,即从bitbucket提取脚本并制作docker映像,但最后,我想将docker映像保存在.tar文件中...。 .....那部分不起作用.....

am使用以下代码:

#!/bin/bash

cd /var/lib/jenkins/workspace/component/image
c=`ls -lrt | tail -n1 |  awk -F'.' '{print $4}' | grep -o '[0-9]\+'`

TAG=`expr $c + 1` 

cd ..



sed -i.bak s#__release__#$TAG# component.yaml

printf "Current tag - $TAG \n"
echo "Switching directory to COMPONENT"
pwd
ls -l
git branch -l
if [ -f $WORKSPACE/../CLEAN_BUILD_BFF ]; then
        echo "Doing a clean build"
        docker build --no-cache -t product:component.6.0.hotfix$TAG .


else
        echo "Doing a normal build"
        docker build -tproduct:component.6.0.hotfix$TAG .


fi

cd images

sudo -S docker save -o /home/ubuntu/test/scripts/images/dockerimage-name.tar dockerimage-name

但是我要保存docker映像的最后一部分不起作用,脚本无法将映像保存为.tar格式

出现以下错误:

/tmp/jenkins5681348791736054100.sh:第31行:cd:图像:无此类文件或目录 完成:成功

1 个答案:

答案 0 :(得分:1)

在顶部,您正在执行,最后将其称为image

cd /var/lib/jenkins/workspace/component/image

,最后,您正在做images

cd images

可能是拼写错误。如果不是,请尝试以下方式以tar格式保存图像。脚本中还有其他一些错别字。

if [ -f $WORKSPACE/../CLEAN_BUILD_BFF ]; then
        echo "Doing a clean build"
        docker build --no-cache -t product:component.6.0.hotfix$TAG .
        docker save product:component.6.0.hotfix$TAG > product:component.6.0.hotfix$TAG.tar

else
        echo "Doing a normal build"
        docker build -t product:component.6.0.hotfix$TAG .  #Typo changed
        docker save product:component.6.0.hotfix$TAG > product:component.6.0.hotfix$TAG.tar


fi