Docker Compose
本节包含与 Spring Boot 中的 Docker Compose 支持相关的主题。
自定义 JDBC URL
当在 Docker Compose 中使用 JdbcConnectionDetails 时,可以通过为服务应用 org.springframework.boot.jdbc.parameters 标签来自定义 JDBC URL 的参数。例如:
services:
postgres:
image: 'postgres:15.3'
environment:
- 'POSTGRES_USER=myuser'
- 'POSTGRES_PASSWORD=secret'
- 'POSTGRES_DB=mydb'
ports:
- '5432:5432'
labels:
org.springframework.boot.jdbc.parameters: 'ssl=true&sslmode=require'
有了这个 Docker Compose 文件后,所使用的 JDBC URL 为 jdbc:postgresql://127.0.0.1:5432/mydb?ssl=true&sslmode=require。
在多个应用程序之间共享服务
如果您想在多个应用程序之间共享服务,请在其中一个应用程序中创建 compose.yaml 文件,然后在其他应用程序中使用配置属性 spring.docker.compose.file 来引用该 compose.yaml 文件。
您还应将 spring.docker.compose.lifecycle-management 设置为 start-only,因为其默认值为 start-and-stop;若不修改,停止一个应用程序会导致其他仍在运行的应用程序所共享的服务也被关闭。
将其设置为 start-only 可在应用程序停止时不关闭共享服务,但需要注意的是,如果所有应用程序都被关闭,这些服务仍将保持运行状态。
您可以通过在包含 compose.yaml 文件的目录中,于命令行执行 docker compose stop 来手动停止这些服务。