我正在使用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:图像:无此类文件或目录 完成:成功
答案 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