Docker + jenkins项目打包镜像部署详细步骤(亲测有效)
作者:EdwardYange
这篇文章主要介绍了Docker + jenkins项目打包镜像部署的相关资料,包括Jenkins的安装、项目搭建、Dockerfile的设置以及遇到的一些问题和解决方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
这一期目前是基于已经搭建好Docker + jenkins 的基础上进行的,当然,后面会将Docker和Jenkins的部署也会写,好了,废话不多说,接下来我们就已经搭建好的环境进行项目的部署:
1.jenkins 安装:
前期的JDK安装:以下的安装都是基于jenkins 就可以,当然自己在外部的JDK在启动Jenkins时候就需要将其挂载在Jenkins上,不然在Jenkins中会找不到执行环境,比如:
后续会将这个的启动和部署出一个文章的,现在很多文章不够具体和细节
docker run -d \ -p 8888:8080 \ -p 50000:50000 \ --privileged=true \ -v /var/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \ --restart=always \ --name=jenkins \ -u root \ -v /data/maven/maven3.9:/data/maven \ 这里就是挂载的maven -v /usr/local/tools/jdk11:/data/jdk11 \ 这里是挂在的jdk -v /var/run/docker.sock:/var/run/docker.sock \ **这里非常重要,必须加**,不然进去执行shell会找不到Docker命令 -v $(which docker):/usr/bin/docker \ **这里非常重要,必须加**,不然进去执行shell会找不到Docker命令 jenkins/jenkins
maven安装:
全局环境变量设置:
上面的前期设置:
2.项目搭建
2.1.接下来就是新建任务
项目具体设置
2.2 git 仓库地址配置
2.3 maven配置
2.4 shell 脚本设置
2.5 项目中Dockerfile 设置
Jenkins shell:
#!/bin/bash cd /var/jenkins_home/workspace/springboot-jenkins-test docker stop springboottest || true docker rm springboottest || true docker rmi springboottest || true docker build -t springboottest . docker run -d -p 8092:8092 --name springboottest springboottest:latest
项目中的Dockerfile:
# 指定是基于哪个基础镜像 FROM java:8 # 作者信息 MAINTAINER Edward_zhang # 挂载点声明 VOLUME /tmp1 # 将本地的一个文件或目录,拷贝到容器的文件或目录里 ADD /target/springboot-jenkins-test-1.0.0.jar springboot.jar #shell脚本 RUN bash -c 'touch /springboot.jar' # 将容器的8081端口暴露,给外部访问。 EXPOSE 8092 # 当容器运行起来时执行使用运行jar的指令 #ENTRYPOINT ["java", "-jar", "springboot.jar"] ENTRYPOINT ["java", "-jar", "/springboot.jar"]
最终要的来了:点击保存 😂
构建:
2.6 结果展示
看到上图中的日志显示,就可以知道是我们在Dockerfile 中设置的相关
当然在其中也遇到过很多坑:
3. 遇到的坑总结
3.1 jdk 找不到
这就是上面所说的Jenkins部署的时候没有将jdk挂载,
3.2 docker command not found
这里出现的问题就很重要了,问题是你在部署启动Jenkins的时候,没有将docker 容器挂载,后面运行上面的shell脚本的时候就会出现找不到的问题
3.3 打包失败 Build failed
这里的问题就是maven出现问题,会出现
3.4 jdk 设置问题
总结
到此这篇关于Docker + jenkins项目打包镜像部署的文章就介绍到这了,更多相关Docker+jenkins打包镜像部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!