Docker Compose

本节包含与 Spring Boot 中 Docker Compose 支持相关的主题。

自定义 JDBC URL

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