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

 DevOps思想

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

image-20210131113140774

plan:需求、计划

code:编码

build:构建

test: 测试

release:发布版本

deploy:部署

operate:项目运转

monitor:监控

image-20210131113921921

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

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

编写一个springboot项目,输出一个hello接口。

image-20210131120105111

访问hello接口:

image-20210131115146967

用码云管理代码:

image-20210131120301093

编写dockerFile

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

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

CMD:指定springboot启动的端口

EXPOSE:容器开放8080端口

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

编写docker-compose.yaml

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 重新构建

image-20210131180019743

访问服务器接口:

image-20210131180048535

jenkin配置

码云新建一个WebHook

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

image-20210201103107192

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

配置Jenkins

jenkin安装gitee插件

image-20210201103303525

新建一个maven项目任务

image-20210131214703734

配置好git地址和账号密码

image-20210131214933915

jenkin任务选择码云的webhook

image-20210201103517144

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

配置build命令

image-20210201103819492

配置build完后执行的命令

image-20210201103849050

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

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

验证

修改代码并提交

成功触发构建事件

image-20210201105057940

重新访问接口

image-20210201105136131

更新成功!

posted @ 2021-02-01 11:05  j志成  阅读(516)  评论(0)    收藏  举报