Docker 无法连接到 Postgres RDS 错误:主机没有 pg_hba.conf 条目

问题描述 投票:0回答:1

我正在尝试将在 macOS M1 上的 Docker 引擎 20 上运行的 Directus 9 本地实例连接到 AWS RDS Postgres 15。

我可以使用 Postico 在本地连接到 RDS 数据库,因此通过 VPC 的公共远程连接可以正常工作。我还可以通过 host.docker.internal 连接到我的本地 Postgres 数据库

我尝试在 RDS 配置中使用参数组来不需要加密连接。设置 rds.force_ssl = 0 无效。

当我尝试

run docker compose up

时出现以下错误
ERROR: no pg_hba.conf entry for host "XX.XXX.XX.XX", user "postrgres", database "EXAMPLEDB", no encryption
directus  |     err: {
directus  |       "type": "DatabaseError",
directus  |       "message": "no pg_hba.conf entry for host \"XX.XXX.XX.XX\", user \"postrgres\", database \"EXAMPLEDB\", no encryption",
directus  |       "stack":

我相信这意味着生产 Postgres 数据库不允许非加密连接。

我克隆了 Directus 存储库并使用 docker 从 docker-compose.yml 构建。我没有使用 .env 文件进行配置,而是将所有内容都放入此 compose 文件中。 我今天是 docker 的新手,还不完全了解如何正确编写此配置,我已经参考了本指南https://docs.directus.io/self-hosted/config-options.html#database

services:
  database:
    container_name: database
    image: postgis/postgis:13-master
    # Required when running on platform other than amd64, like Apple M1/M2:
    #platform: linux/amd64
    #volumes:
    # - ./data/database:/var/lib/postgresql/data2
    networks:
      - directus
    environment:
      POSTGRES_USER: 'directus'
      POSTGRES_PASSWORD: 'directus'
      POSTGRES_DB: 'directus'

  directus:
    environment:
      DB_CLIENT: 'postgres'
      DB_HOST: 'xxx.rds.amazonaws.com'
      DB_PORT: '5432'
      DB_DATABASE: 'XXXX'
      DB_USER: 'postrgres'
      DB_PASSWORD: 'XXX' 

   directus exited with code 1

我认为不可能对 RDS 上的 pg_hba.conf 进行任何更改,不应对其进行编辑或将其视为解决方案。

错误的原因可能是docker镜像没有安装SSL之类的?

我使用了所有提供的 Dockerfile 和来自 https://github.com/directus/directus

的文件

关于可能导致此错误的解决方案的任何想法?

database postgresql docker amazon-rds directus
1个回答
0
投票

我认为您将

DB_CLIENT
变量设置错误。根据Directus官方文档应该是
pg
https://docs.directus.io/self-hosted/config-options.html#config-yaml

© www.soinside.com 2019 - 2024. All rights reserved.