postgresql - 为每个使用 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 ,则各自正确连接到服务。但我希望这两个服务都能正确地与他们的数据库通信。
解决方案
推荐阅读
- reactjs - componentdidmount 中的 mockApi 不返回任何值
- android - ImageView setsetImageResource 在手机上不断崩溃,但在模拟器或平板电脑上却没有
- java - 如果我们使用@embedded 注释,HQL(hibernate 查询语言)需要如何改变?
- delphi - Delphi 2007 IDE 提示显示为 HTML 文本
- python - 如何使用 pymongo 将小 png 图像保存到 Mongodb 数据库
- asp.net-core - 如何将 Visual Studio 2017 模板从 ASP.NET Core 2.0 更新到 2.1
- ios - 如何在 MKMapView 中将用户当前位置蓝点更改为自定义图像
- alexa - 什么样的插槽用于捕获随机文本?
- xml - 从列中的 xml 中选择第一个元素
- c - 如何使用 DOT 运算符初始化结构类型的数组