首页 > 解决方案 > 为每个使用 Postgres DB 的多个 Springboot 服务配置 Docker-compose

问题描述

我有一个应用程序,它由多个 Springboot 服务组成,每个服务都有自己的 Postgres DB。

我想使用 docker-compose 一起开始,但不知道如何定义它。

这就是我的 docker-compose 文件的外观。

version: "3.9"
services:

  postgres:
    image: postgres:9.6
    container_name: postgres-container
    restart: always
    ports:
      - 5432:5432
    networks:
      - customer-order
    expose:
      - 5432
    environment:
      - POSTGRES_PASSWORD=pwd
      - POSTGRES_USER=uname
      - POSTGRES_MULTIPLE_DATABASES=customer_db,order_db
      # - POSTGRES_DB=customer_db


  customer:
    image: customer-service
    build: ./
    container_name: customer-container
    ports:
      - "9000:9000"
    expose:
      - 9000
    networks:
      - customer-order
    depends_on:
      - postgres
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/customer_db
      - SPRING_DATASOURCE_USERNAME=uname
      - SPRING_DATASOURCE_PASSWORD=pwd
      - SPRING_JPA_HIBERNATE_DDL_AUTO=create


  order:
    image: order-service
    build: ./
    container_name: order-container
    ports:
      - "9002:9002"
    expose:
      - 9002
    networks:
      - customer-order
    depends_on:
      - postgres
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/order_db
      - SPRING_DATASOURCE_USERNAME=uname
      - SPRING_DATASOURCE_PASSWORD=pwd
      - SPRING_JPA_HIBERNATE_DDL_AUTO=create

networks:
  customer-order:

在这里,如果我在 Postgres 服务中使用 POSTGRES_DB=customer_db 或 POSTGRES_DB=order_db ,则各自正确连接到服务。但我希望这两个服务都能正确地与他们的数据库通信。

标签: postgresqlspring-bootdockerdocker-compose

解决方案


推荐阅读