Jenkins + Docker 一键自动化部署 SpringBoot 项目
公众号程序猿DD
共 3583字,需浏览 8分钟
· 2022-08-26
![](https://filescdn.proginn.com/c7e61d37e63dd7bc5a2336a73ca6d64f/89ea6009c933d476924022c3cdf44a5b.webp)
Jenkins+docker+springboot
一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)
一、安装docker
yum update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己的版本> # 例如:sudo yum install docker-ce-17.12.0.ce
systemctl start docker
systemctl enable docker
docker version
二、安装Jenkins
https://www.jenkins.io/zh/
1.安装Jenkins
docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
http://{部署Jenkins所在服务IP}:8080
2.初始化Jenkins
2.1 解锁Jenkins
进入Jenkins容器: docker exec -it {Jenkins容器名} bash
例如 docker exec -it jenkins bash
查看密码: cat /var/lib/jenkins/secrets/initialAdminPassword
复制密码到输入框里面
![](https://filescdn.proginn.com/665cdaab2b6785a1fd2f049420a4cfce/5efb4a90e4238ae7f8cfcece4c112615.webp)
2.2 安装插件
![](https://filescdn.proginn.com/311b19b12fa3e11e7c3efe66a915d79e/b8e80246c0e14864f98b4dca836d2140.webp)
2.3 创建管理员用户
三、系统配置
1. 安装需要插件
![](https://filescdn.proginn.com/a41ca9734afca4d9ca754bf20cf6d45f/4adf71adb1e89e373992f267099ff00f.webp)
安装 Maven Integration
安装 Publish Over SSH
(如果不需要远程推送,不用安装)如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)
2. 配置Maven
![](https://filescdn.proginn.com/263a11b7bdf668a748ada9fea36538ce/f6c91977e219e9387f03231a44e4c718.webp)
四、创建任务
1. 新建任务
![](https://filescdn.proginn.com/992c1d0e15fb95323cddb6117a22e78e/582ed074d3a2891f00fec230675818b7.webp)
2. 源码管理
![](https://filescdn.proginn.com/9cfb8b6a4dc003d6e5006e1576109170/388fa495b54214d8fd98bf38f61ff4ef.webp)
![](https://filescdn.proginn.com/508625136541159cbbc3cd483f202f0e/ae009ca081b834ec6e6c6824591d0c55.webp)
3.构建触发器
![](https://filescdn.proginn.com/ee7bf040ee6be34e92f2befb9415abcc/8bb893cdf277614d6f5ad9dc37908b2e.webp)
clean install -Dmaven.test.skip=true
![](https://filescdn.proginn.com/26b1b647862cb5aa87fa117762f679ec/a23932ee67a292f495a27884cac99918.webp)
4. 保存
五、测试
1. 构建
![](https://filescdn.proginn.com/37426a9b3a14ed650bb73449b3281fa6/28f8825c20f9cdede048b29ff0e104ea.webp)
2.查看日志
![](https://filescdn.proginn.com/37426a9b3a14ed650bb73449b3281fa6/28f8825c20f9cdede048b29ff0e104ea.webp)
![](https://filescdn.proginn.com/fd6739efdc4fb5cc9097e0829168f686/9c299711e12fc8df7abdb89a0f237101.webp)
![](https://filescdn.proginn.com/d4a758644c29a25059b84c66ec29f6cf/825a8ed377590b92dc0d5b60296bf1d5.webp)
3. 查看项目位置
cd /var/jenkins_home/workspace
ll
即可查看是否存在
六、运行项目
1. Dockerfile
FROM jdk:8
VOLUME /tmp
ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8888
ENTRYPOINT ["Bash","-DBash.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]
2. 修改jenkins任务配置
![](https://filescdn.proginn.com/895aaab65a026ab90680833608d78d59/3099571dbf6037ca15cddcac9e79d5cb.webp)
![](https://filescdn.proginn.com/c066259becac8afbc293584e48b4fce1/60dfc5d0392942d63f220127d5bf1b46.webp)
-t
:指定新镜像名.
:表示Dockfile在当前路径
cd /var/jenkins_home/workspace/zx-order-api
docker stop zx-order || true
docker rm zx-order || true
docker rmi zx-order || true
docker build -t zx-order .
docker run -d -p 8888:8888 --name zx-order zx-order:latest
我上图用了 docker logs -f
是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败加 || true
是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错
3. 保存
4. 构建
![](https://filescdn.proginn.com/84f524ac477d61b2133639007b44454d/43c8033dcf116827867b10ee40ee94c0.webp)
5. 验证
docker ps
查看是否有自己的容器docker logs
自己的容器名 查看日志是否正确浏览器访问项目试一试
推荐阅读
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
评论