本篇展示两个微服务,一个微服务含数据库,一个不含数据库。
一、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代码,就可以自动部署了。
相关阅读
发表评论