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 手动停止服务。