简介
分享自己在docker上简单搭建的springBoot项目集群流程操作;
主要操作流程
首先把SpringBoot项目打包,在idea中使用命令mvn package命令
或者在maven工程下的lifecycle里点击package直接打包工程;
然后再创建镜像同步到docker上,这里需要在Spring Boot中配置一个dockerfile插件,先在项目的pom.xml文件中添加插件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<configuration>
<repository>${project.name}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
然后再在项目/模块的根目录添加Dockerfile文件,文件内容为:
FROM openjdk:11
ARG JAR_FILE
ADD target/${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
在打包项目完成后再执行mvn dockerfile:build,即可同步项目镜像到docker上了;如果是远程docker则需要先修改本地变量,让系统默认连接远程docker。
此时已经可以用docker images命令查看是否存在项目的镜像;
到了这一步我们已经可以直接在docker启动该项目;
接下来是集群的配置,本次分享的是nginx下部署集群;首先当然是在dockers中下载nginx,当然直接docker pull nginx即可下载最新版nginx;然后创建一个docker-compose的yml配置文件,书写好集群工程的启动配置,就可以利用docker-compose一次启动多个集群工程,否则需要输入命令行挨个启动,比较麻烦。
首先version:3表示docker-compose是版本3;接下来比较重要的是volumes表示本地conf文件在docker的资源对应文件位置;然后是ports表示工程的端口映射;后面的project1、2、3则表示集群了三个工程,imag表示镜像工程的tag名;command则是取得工程别名,可以在运行工程时通过打印该名称知道是哪个集群项目在执行程序;当然conf文件而需要配置一下:
其中upstream的名shopColony一定要与location中的proxy——pass的路劲一致,否则无法请求无法找到服务器,当然每个集群项目的端口也要与yml文件保持一致;之后就可以直接在该文件目录下直接启动cmd,然后输入docker-compose up命令启动该集群项目:最后再启动nginx:
这样我们一个简单的nginx集群就创建好了!可以直接访问80端口,然后再由nginx自动分配给适合的集群工程。