前言
昨天安装了jenkins并且能够部署springboot项目,今天学习使用jenkins构建docker容器的方式部署springboot项目。
一、前提准备
服务器已经安装好docker,jenkins并且已经启动成功。
二、使用步骤
在gitee上找个springboot工程,拉取到本地,在工程里面新建docker文件夹,新增Dockerfile 文件
Docker中粘贴以下内容
# jre基础环境
FROM openjdk:8-jre-alpine
# 维护者信息
MAINTAINER zhy
# 设置环境变量-运行时也可传参进来哈
ENV JAVA_OPTS ""
# 添加jar包到容器中 -- tips: xx.jar 和 Dockerfile 在同一级,添加到容器的/home/app.jar 目录下
ADD *.jar /home/app.jar
# 对外暴漏的端口号
# [注:EXPOSE指令只是声明容器运行时提供的服务端口,给读者看有哪些端口,在运行时只会开启程序自身的端口!!]
EXPOSE 8080
# 以exec格式的CMD指令 -- 可实现优雅停止容器服务
# "sh", "-c" : 可通过exec模式执行shell =》 获得环境变量
CMD ["sh", "-c", "echo \"****** 运行命令:java -jar ${JAVA_OPTS} /home/app.jar\" & java -jar ${JAVA_OPTS} /home/app.jar"]
提交代码到gitee上。
打开jenkins新建任务
jenkins中添加描述信息
源码管理粘贴gitee中的项目地址
选择已有的账号凭证
没有的话点击下方添加按钮
输入用户名和密码进行保存
代码分支和gitee对应
构建步骤选择执行shell
shell中粘贴以下命令
# 在工作文件夹下拉取代码后,执行maven 打包
mvn clean install -DskipTests
# 复制打包后的jar到docker目录下
cp target/executor-test-0.0.1-SNAPSHOT.jar docker
#进入到docker目录下
cd docker
# 构建容器镜像
docker build -f Dockerfile -t "springboot:dev" . --no-cache
# 停止之前已经运行的容器
docker ps -a | grep springboot | awk '{print $1}' | xargs -i docker stop {} | xargs -i docker rm {}
# 运行容器
docker run -d -p 8888:8080 --name springboot springboot:dev
保存应用
立即构建测试运行
查看控制台日志输出
构建成功
浏览器访问接口测试
查看运行容器
docker ps
查看容器日志
docker logs -f springboot
进入容器查看 ADD 拷贝的jar包
docker exec -it springboot /bin/bash
提示这个错误说明没有/bin/bash,使用 /bin/sh
docker exec -it springboot /bin/sh
到 /home 目录下查看
退出容器
exit
总结
以上就是今天要讲的内容,本文介绍了使用jenkins部署springboot+docker项目。