Docker安装jenkins部署springboot项目发布docker镜像
- 先在centos上或者用自己的云服务器安装docker,安装教程这里略过
- docker安装完后使用docker命令安装jenkins,这里使用-u root 提升权限,否则后续操作无权限可能无法启动jenkins,使用下列命令创建容器,挂载docker目录是为了在容器内部使用docker命令,jenkins_home里面包含了jenkins后续的工作目录,后面会在容器内部对springboot项目用dockerfile打包成新的镜像,这边推荐换一个映射端口,免得8080发生冲突
docker run -d -p 8081:8080 --name jenkins -u root -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /root/jenkins:/var/jenkins_home jenkins/jenkins
-
创建完docker容器后,获取jenkins初始化的密码,创建一个管理员账号,直接下一步就好了
在插件管理页面安装如图所示的插件 -
构建一个maven项目,用它来发布maven管理的springboot项目
-
选择Git,我这里是用的Gitee,输入对应仓库的地址,这里是http的就可以了,默认master分支
6. 这里可以使用触发器,定时去自动拉取最新的代码编译打包执行流水线
7.构建环境给这个选项打钩,可以看构建过程中控制台输出的日志
8.选择你所要构建的项目的pom.xml文件位置,这个地方是基于你的工作空间 workspace来设定的,
我这里选择我workspace下面的这个项目路径里面的pom.xml,下面的命令是maven执行声明周期命令,用来编译项目,-Dmaven.test.skip=true是跳过项目里面的test
9.自动化构建最关键的就是这个脚本了,打开post steps,先把项目路径下maven构建后的jar包复制到外层目录来,再cd进入当前项目路径下,先略过我删除之前的容器和镜像,这里要执行docker build 构建 dockerfile,dockerfile就是构建一个新的docker镜像,这个镜像里面存放了我们的项目jar包,通过我们的jdk将它在容器内部跑起来,后面的docker run就是启动这个容器,并做端口映射
cp springboot-day01/target/springboot-day01-1.0-SNAPSHOT.jar springboot-day01/test.jar
cd springboot-day01
docker stop test
docker rm test
docker rmi test
docker build -t test .
docker run -id --name=test -p 80:80 test
总结一下踩坑,就是docker build的时候最后面带一个 . ,就是一个点,代表dockerfile的上下文路径,你目前所在的路径下面的文件全部都会被打包到容器里面,如果你所在目录错了,你执行了docker build,那么你的jenkins构建之后,会报一个 cann’t access xxx.jar。就代表你运行dockerfile生成镜像的时候,你所在的路径,找不到你的jar包。
放一下运行成功的截图。
顺便放出我的dockerfile文件里面的内容
FROM openjdk:8
ADD ./test.jar /application.jar
ENTRYPOINT ["java","-jar","/application.jar"]
综上,新手向,如果有问题,可以私信我。