如何持久化在 docker 内的 tomcat 上运行的 Spring Boot 应用程序的会话

Posted

技术标签:

【中文标题】如何持久化在 docker 内的 tomcat 上运行的 Spring Boot 应用程序的会话【英文标题】:How to persist sessions of spring boot application running on tomcat inside docker 【发布时间】:2020-04-24 21:27:08 【问题描述】:

我的 spring boot(2.2) 应用程序有一个标准 Dockerfile

FROM openjdk:11-slim
EXPOSE 8080
COPY ./build/libs/*.jar ./app.jar
CMD java -jar app.jar

spring boot 中有一个属性可以启用会话持久性(在我的例子中是 Tomcat

server.servlet.session.persistent=true

对于我的单一服务应用程序来说,使用 redis 似乎有点过头了。

也许我可以创建一个卷来存储会话?

【问题讨论】:

是的,你可以这样做:“也许我可以创建一个卷来存储会话?”你有什么问题? 酷!我不确定这是否可能。找不到任何相关信息(你能帮忙提供一个链接吗? 确实创建了一个卷,callicoder.com/spring-boot-docker-example 【参考方案1】:

简单定义目录:

server.servlet.session.store-dir=/<the directory you mount as volume>

就是这样。

【讨论】:

以上是关于如何持久化在 docker 内的 tomcat 上运行的 Spring Boot 应用程序的会话的主要内容,如果未能解决你的问题,请参考以下文章

docker mysql 容器 数据库文件怎么娴宿主机器上

docker mysql 容器 数据库文件怎么娴宿主机器上

Docker 数据卷-Docker容器数据持久化方式

Docker 学习DockerFile

将外部 application.properties 文件添加到 tomcat 内的 dockerized spring boot web 应用程序

如何在docker部署安装tomcat环境