我正在尝试将在 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
的文件关于可能导致此错误的解决方案的任何想法?
我认为您将
DB_CLIENT
变量设置错误。根据Directus官方文档应该是pg
https://docs.directus.io/self-hosted/config-options.html#config-yaml