Docker Compose
本节包含与 Spring Boot 中 Docker Compose 支持相关的主题。
自定义 JDBC URL
当使用 JdbcConnectionDetails
配合 Docker Compose 时,可以通过为服务添加 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
手动停止服务。