《jenkins自动化发布到服务器并自动运行》
第1种方法:使用外部Jar包完成自动化部署(简单方便),正式环境更新jar包时,备份一下旧的的jar包即可。
修改jenkins项目配置
Pre Steps 构建前清除旧的jar包,然后停止容器
rm -rf *
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
#需要打包成镜像的jar文件夹路径
WORKDIR /jenkins/gitlabdemo
#ADD第一个变量是宿主机jar包的相对路径,由WORKDIR+gitlabdemo-1.jar拼接而成,但是不建议ADD后面配jar包的相对路径,而是直接配jar包名称,否则会抛出找不到jar包的错误。
ADD gitlabdemo*.jar /gitlabdemo/gitlabdemo.jar
ENTRYPOINT ["nohup","java","-jar","/gitlabdemo/gitlabdemo.jar","&"]
进入到jar包存放文件夹执行构建镜像命令并查看构建镜像是否成功,最后面那个 . 点表示当前目录
cd /jenkins/gitlabdemo/ && docker build -t gitlabdemo . && docker images
启动构建好的镜像检查是否能正常启动,启动前先把之前确保端口没有被占用以及开放防火墙的相应端口,用netstat -ntlp |grep 9090检查端口是否被占用
docker run -d -p 9090:9090 --name gitlabdemo gitlabdemo && docker ps