为什么Jenkins已经部署成功了,为什么最后还是会报错Finished: FAILURE
我的部署脚本
#!/bin/bash
echo "开始部署................"
appName="lover"
containerId=$(docker ps -a -q --no-trunc --filter name=^/"$appName")
echo "$containerId"
imageId=$(sudo docker images --filter reference="qq603413965/$appName" --format {{.ID}})
if [ -z "$containerId" ];
then
echo "启动中................"
elif [ -n "$containerId" ];
then
echo "停止并删除旧容器................"
docker stop "$containerId"
docker rm "$containerId"
fi
if [ -n "$imageId" ];
then
echo "删除旧镜像................"
docker rmi "$imageId"
fi
mvn clean package dockerfile:build dockerfile:push
imageId=$(sudo docker images --filter reference=qq603413965/"$appName" --format {{.ID}})
if [ "$imageId" = "" ];
then
echo "【ERROR】没有获取到image id, 结束部署"
exit 1
fi
echo "imageId=$imageId"
containerId=$(docker run -p 1111:1111 -d --restart=always --name "$appName" "$imageId")
sleep 10
result=$(curl -k -s GET -H "Content-type:application/json" http://localhost:1111/status)
data=$(echo $result | jq '.data')
echo "$data"
ok=$(echo $data | grep "ok")
if [ "$ok" != "" ]; then
echo "start service success"
exit 0
eles
echo "start service failed"
exit 1
fi
Jenkins上的部署日志
看结果都已经正常访问到服务器了,而且也拿到了服务器返回的ok. current server time 1631774737391
我的退出码也设置为的是0,实在找不到解决办法了,来问问各位大佬。
更新:
脚本错误的代码eles改为了else:
if [ "$ok" != "" ]; then
echo "start service success"
exit 0
else
echo "start service failed"
exit 1
fi
依旧Finished: FAILURE
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
else
打错了吧?脚本语法错误。把exit 0删掉试试