springboot+Jenkins+docker-compose自动部署项目实践

时间:2023-03-08 20:01:32

DevOps思想

一个开发、测试、运维的整个过程的思想。

springboot+Jenkins+docker-compose自动部署项目实践

plan:需求、计划

code:编码

build:构建

test: 测试

release:发布版本

deploy:部署

operate:项目运转

monitor:监控

springboot+Jenkins+docker-compose自动部署项目实践

Jenkins主要做自动部署的工作。

准备一个简单的springboot项目,并用码云管理代码

springboot+Jenkins+docker-compose自动部署项目实践

![](Jenkins.assets/image-20210131115025348.png

springboot+Jenkins+docker-compose自动部署项目实践

springboot+Jenkins+docker-compose自动部署项目实践

编写dockerFile

springboot+Jenkins+docker-compose自动部署项目实践

FROM:使用java:8作为基础镜像

COPY:拷贝所有当前目录jar文件后缀的包到镜像容器的/hello-jenkins.jar

CMD:指定springboot启动的端口

EXPOSE:容器开放8080端口

VOLUME:容器内存放日志文件的路径,需要挂载到服务器

编写docker-compose

springboot+Jenkins+docker-compose自动部署项目实践

version:Compose file format,与docker引擎的版本对应查阅:https://docs.docker.com/compose/compose-file/compose-versioning/

services:需要构建的镜像列表

hello-jenkins: 镜像名字

build:构建命令,直接点就是构建当前目录的Dockerfile文件(docker build -f Dockerfile -t hello -jenkins )

image: 镜像名

volumes:挂载目录,服务器目录:容器内目录

ports:端口映射,服务器端口:容器内端口、

尝试执行

将docker-compose、DockerFile、jar包放入服务器目录上。

执行

docker-compose up -d  # -d后台执行 --build 重新构建

springboot+Jenkins+docker-compose自动部署项目实践

访问成功:

springboot+Jenkins+docker-compose自动部署项目实践

码云新建一个WebHook

springboot+Jenkins+docker-compose自动部署项目实践

注意url要以用户名@密码的形式说明jenkin的用户

配置Jenkins

jenkin安装gitee插件

springboot+Jenkins+docker-compose自动部署项目实践

新建一个maven项目任务

springboot+Jenkins+docker-compose自动部署项目实践

配置好git地址和账号密码

springboot+Jenkins+docker-compose自动部署项目实践

配置webhooks

使用webhooks能让提交代码的时候就触发构建项目。

jenkin任务选择码云的webhook

springboot+Jenkins+docker-compose自动部署项目实践

选择[ci-build] 指令触发构建可以在提交的描述信息包含 [ci-build],才触发构建。

配置build命令

springboot+Jenkins+docker-compose自动部署项目实践

配置build完后执行的命令

springboot+Jenkins+docker-compose自动部署项目实践

我的jenkins是war包安装的,构建后的包目录是 /root/.jenkins/workspace/hello-jenkins/target/hello-0.0.1-SNAPSHOT.jar

\cp命令是复制,且强制覆盖原来的文件。

验证

修改代码并提交

springboot+Jenkins+docker-compose自动部署项目实践

成功触发构建事件

springboot+Jenkins+docker-compose自动部署项目实践

刷新页面

springboot+Jenkins+docker-compose自动部署项目实践

更新成功!