本篇展示两个微服务,一个微服务含数据库,一个不含数据库。

一、Gitee目录结构

详见:gitee具体文件目录 为后续Dockerfile和docker-compose.yml使用

.

二、Dockerfile编写

service1:

FROM java:8

COPY ./docker01-0.0.1-SNAPSHOT.jar /app.jar

EXPOSE 6001

ENTRYPOINT ["java","-jar","/app.jar"]

service2类似。

.

三、docker-compose.yml编写

version: '3'

services:

service1: # 微服务名

#image: xxx # 若build和image共存,则将Dockerfile构建的镜像名指定为xxx

build:

context: ./Dockerfile/service1 # 构建Dockerfile路径

dockerfile: Dockerfile # Dockerfile名

container_name: service1 # 不指定默认 当前路径_服务名_服务数量,数量对应(scale)

ports:

- "6001:6001"

depends_on:

- "service1_mysql" # 依赖服务

service2:

build:

context: ./Dockerfile/service2

dockerfile: Dockerfile

container_name: service2

ports:

- "6002:6002"

service1_mysql:

image: mysql:5.7

container_name: service1_mysql

ports:

- "3307:3306"

volumes:

- /home/testCompose/mydata/mysql/log:/var/log/mysql

- /home/testCompose/mydata/mysql/data:/var/lib/mysql

- /home/testCompose/mydata/mysql/conf:/etc/mysql

environment:

MYSQL_ROOT_PASSWORD: "root"

正常执行以下命令就可以容器编排了,但是这次演示的是CI/CD: 1.docker-compose build 2.docker-compose up

.

四、jenkins下载(本次使用docker)

docker run -d --name jenkins -p 8099:8080 -v /opt/data/jenkins_home:/var/jenkins_home jenkins/jenkins

初始默认安装插件就行

1)几个插件记得安装:

1.maven (打包文件) 2.Publish over ssh (发文件) 3.Gitee (托管代码,jenkins监听) 由于不知啥情况,个人下载maven用不了,自己在本机下的maven拖进去的。

.

2)maven,ssh环境变量配置:

.

3)跟着Gitee官网配置

注意:其中gitee给Jenkins发消息,需要能联通网络,如果是内网,注意使用内网穿透。

.

五、开始写Jenkins执行流程

构建四流程 1.提交代码到gitee,自动拉取code √

2.jenkins容器使用maven打包项目获得新jar包 √

3.发送新jar包和Dockerfile以及docker-compose到宿主机 √

4.宿主机执行docker-compose.yml √

1)提交代码到gitee,自动拉取code √

webhook自动完成。

.

2)jenkins容器使用maven打包项目获得新jar包

.

3)发送新jar包和Dockerfile以及docker-compose到宿主机 √

4)宿主机执行docker-compose.yml √

六、测试

之后只要提交gitee代码,就可以自动部署了。

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。