写点什么

八、springboot 简单优雅的通过 docker-compose 构建

用户头像
极客good
关注
发布于: 刚刚

增加配置




在 pom.xml 文件中增加 Redis 的依赖


<dependency>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-starter-data-redis</artifactId>


</dependency>


在 application.properties 中存在 redis 连接信息。


#配置 redis

Redis 数据库索引(默认为 0)

spring.redis.database=0

Redis 服务器地址

spring.redis.host=192.168.252.53

Redis 服务器连接端口

spring.redis.port=6389

Redis 服务器连接密码(默认为空)

spring.redis.password=

连接池最大连接数(使用负值表示没有限制) 默认 8

spring.redis.lettuce.pool.max-active=8

连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1

spring.redis.lettuce.pool.max-wait=-1

连接池中的最大空闲连接 默认 8

spring.redis.lettuce.pool.max-idle=8

连接池中的最小空闲连接 默认 0

spring.redis.lettuce.pool.min-idle=0


简单使用




配置好了,我们还是说一下简单使用,这些在之前也有讲,代码也是差不多的。我们在 controller 层创建一个 redis 包,在 Redis 包下创建一个 RedisController 类。


代码如下:


@RestController


@RequestMapping("/redis")


@Slf4j


public class RedisController {


@Autowired


private StringRedisTemplate stringRedisTemplate;


@RequestMapping(value = "/add",method = RequestMethod.GET)


public String add(@RequestParam(value="key")String key,@RequestParam(value = "value") String value){


ValueOperations ops=stringRedisTemplate.opsForValue();


ops.set(key,value);


return "success";


}


@RequestMapping(value = "/get",method = RequestMethod.GET)


public String get(@RequestParam(value = "key")String key){


ValueOperations ops=stringRedisTemplate.opsForValue();


return (String) ops.get(key);


}


}



好了项目整合 Redis 就这么多了,至于测试我们待会后面部署好了一起测试。接下来开始重头戏。


docker-compose 部署


================================================================================


我们现在有一个 springboot 项目,现在怎么构建成一个镜像放在服务器上运行呢?


我们一步步来,首先是增加配置。


pom.xml




还是我们熟悉的 pom.xml 我们需要在 pom.xml 中 build–>plugins 中增加配置:


<plugin>


<groupId>com.spotify</groupId>


<artifactId>docker-maven-plugin</artifactId>


<version>1.0.0</version>


<executions>


<execution>


<id>build-image</id>


<phase>package</phase>


<goals>


<goal>build</goal>


</goals>


</execution>


</executions>


<configuration>


<imageName>{project.artifactId}:${project.version}</imageName>


<imageTags>


<imageTag>${project.version}</imageTag>


</imageTags>


<dockerDirectory>src/main/docker</dockerDirectory>


<dockerHost>http://127.0.0.1:2375</dockerHost>


<resources>


<resource>


<targetPath>/</targetPath>


<directory>${project.build.directory}</directory>


<include>${project.build.finalName}.jar</include>


</resource>


</resources>


</configuration>


</plugin>


上面都有注释没有什么好讲的,其中指定生成镜像名的 ${docker.image.prefix} 的值在 properties 中配置。



Dockerfile




我们在项目的 src–>main 创建一个 docker 包,包下创建一个 Dockerfile 问价 ,内容如下:


FROM java:8


VOLUME /tmp


ADD zlflovemm-1.0.0.jar zlflovemm-1.0.0.jar


ENTRYPOINT ["java","-jar","/zlflovemm-1.0.0.jar"]


mvn package




接下来我们使用 maven package 打包,就可以将项目打包成镜像并发送到我们配置的服务器上。可以看到我们的镜像已经到我们的服务器了。



docker-compose.yml




我们现在项目镜像有了,现在需要通过 docker-compose.yml 将项目,mysql .redis 都管理起来。


我们创建一个 docker-compose.yml 内容如下:


version: "3"


services:


webapp:


image: quellanan/zlflovemm:1.0.0


ports:


  • "9001:9090"


volumes:


  • "/data"


depends_on:


  • redis

  • mysql


redis:


image: redis:latest


restart: always


ports:


  • "6389:6379"


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


volumes:


  • /redis/redis.conf:/etc/redis/redis.conf


command: redis-server /etc/redis/redis.conf


mysql:


image: mysql:latest


restart: always

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
八、springboot 简单优雅的通过docker-compose 构建