我正在尝试将在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文件
关于此错误的可能原因解决方案,有什么想法吗?
1条答案
按热度按时间p8h8hvxi1#
我想你设置的
DB_CLIENT
变量是错误的。根据Directus官方文档www.example.com应该是pg
https://docs.directus.io/self-hosted/config-options.html#config-yaml