Jenkins自动部署springboot的Docker镜像,解决Status [1]问题

Jenkins凡是要指定路径的命令,一定要写绝对路径,不能写相对路径!不要以为配置了Remote directory,那么命令就会在Remote directory下执行!这种想法是错误的!!!

《jenkins自动化发布到服务器并自动运行》

第1种方法:使用外部Jar包完成自动化部署(简单方便),正式环境更新jar包时,备份一下旧的的jar包即可。

修改jenkins项目配置

Pre Steps 构建前清除旧的jar包,然后停止容器

在这里插入图片描述

rm -rf /jenkins/gitlabdemo/*
docker stop gitlabdemo
Post Steps构建启动容器

在这里插入图片描述

docker start gitlabdemo

先执行一次jenkins构建,会报ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]],这个错是因为我们没有相应的容器。这时候我们去部署服务器执行一次下面这条命令即可。
-v后面的jar包路径无法模糊匹配,所以修改版本号的时候,也要相应修改docker命令

docker run -d -p 9090:9090 --privileged=true --restart=always --name gitlabdemo -v /jenkins/gitlabdemo/gitlabdemo-1.jar:/gitlabdemo/gitlabdemo.jar openjdk:8-jre-alpine java -jar /gitlabdemo/gitlabdemo.jar

然后重新执行一次jenkins构建


第2种方法:Dockerfile打包成docker镜像(灵活),相对来说比较麻烦一点,而且占用存储空间比较多!

springboot项目根路径与pom.xml同级创建Dockerfile文件

在这里插入图片描述

#jdk版本
FROM openjdk:8-jre-alpine
#时区
ENV TZ=Asia/Shanghai
#JVM参数
ENV JAVA_OPTS="-Xms256m -Xmx256m"
#映射端口
EXPOSE 9090 9090
#指定工作文件夹,那么执行Dockerfile也要进入到这个文件夹执行,否则会报错
WORKDIR /jenkins/gitlabdemo
#把jar包放入镜像内
ADD gitlabdemo*.jar /gitlabdemo.jar
#启动参数
ENTRYPOINT ["nohup","java","-jar","/gitlabdemo.jar","&"]

推送到gitlab以后,回到jenkins

Pre Steps(构建前)

在这里插入图片描述
这个rm -rf一定要指定到具体的文件夹,否则会执行失败!不要以为上面指定了remote dir,就以为当前在remote dir下!这种想法是错误的!凡是需要到某个目录的均要指定绝对路径!!!

rm -rf /jenkins/gitlabdemo/*
docker stop gitlabdemo
docker rm -f gitlabdemo
docker rmi -f gitlabdemo
Post Steps(构建)
第1个Transfer Set

在这里插入图片描述

第2个Transfer Set

在这里插入图片描述
再次申明一次!不要以为配置了Remote directory,那么命令就会在Remote directory下执行!这种想法是错误的!!!

cd /jenkins/gitlabdemo && docker build -t gitlabdemo . && docker run -d -p 9090:9090 --name gitlabdemo gitlabdemo

关于:ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]]
这个错误就是你的命令有问题,即Exec command下写的命令有问题!首先排查执行命令时是否指定了文件的路径!如:sh a.sh。假设文件路径是/root/a.sh。这样执行就会有问题!因此应该写成sh /root/a.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值