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

x8goxv8g  于 2023-04-20  发布在  Docker
关注(0)|答案(1)|浏览(254)

我正在尝试将在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 repo,并使用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文件
关于此错误的可能原因解决方案,有什么想法吗?

p8h8hvxi

p8h8hvxi1#

我想你设置的DB_CLIENT变量是错误的。根据Directus官方文档www.example.com应该是pghttps://docs.directus.io/self-hosted/config-options.html#config-yaml

相关问题