postgresql 如何设置jdbc url以连接到数据库容器

bqjvbblv  于 2023-01-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(285)

我正在使用docker-compose来容器化我的rest api。一个服务用于我的spring应用程序,另一个用于数据库。问题是spring boot api尝试通过使用localhost默认连接到数据库,但由于它是容器,它创建了一个错误(连接到localhost:5432被拒绝。检查主机名和端口)。容器停止工作,因为应用程序不工作。如何告诉我的spring boot api尝试连接到数据库容器。

version: "3"

services:
  app_service:
    container_name: app_service
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - postgresql
    networks:
      - net
  postgresql:
    image: postgres:15.0
    container_name: db
    ports:
      - "5432:5432"
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD : Access/fedora/6
      POSTGRES_DB : postgres
    volumes:
      - psql:/var/lib/postgres/psql
    networks:
      - net
volumes:
  psql:
networks:
  net:
cloud:
  aws:
    credentials:
      secret-key: 'qdfqdfqsdfqsdqsdfqsdfqs'
      access-key: 'qfqsdfqserfqegdrhfjkgkh'
    region:
      static: eu-west-3
    stack:
      auto: 'false'
spring:
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        format_sql: 'true'
    show-sql: 'true'
    hibernate:
      ddl-auto: update
  servlet:
    multipart:
      max-file-size: 5MB
      enabled: 'true'
      max-request-size: 10MB
      file-size-threshold: 2MB
  datasource:
    hikari:
      jdbc-url: jdbc:postgresql://db:5432/postgres
      password: Access/fedora/6
application:
  bucket:
    name: moood-app

我试着搜索是否有一个我可以使用的spring项目的图像,但是我没有找到一个可以帮助我的图像。我试着找到一种方法来为spring容器设置默认的jdbc url,但是没有找到。
我希望找到一种方法来设置容器之间的连接

ecbunoof

ecbunoof1#

你可以通过environment来传递这个值。

services:
  app_service:
    container_name: app_service
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - postgresql
    networks:
      - net
    environment:
        SPRING_DATASOURCE_HIKARI_JDBC_URL: jdbc:postgresql://db:5432/postgres

相关问题