0

我可以从 Docker 映像运行 Hashura。

docker run -d -p 8080:8080 \
  -e HASURA_GRAPHQL_DATABASE_URL=postgres://username:password@hostname:port/dbname \
  -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
  hasura/graphql-engine:latest

但我也有一个 Postgres 实例,只能使用三个证书访问:

psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=$DB_HOST \
      port=$DB_PORT\
      user=$DB_USER dbname=$DB_NAME"

我没有看到允许我以这种方式连接到 Postgres 实例的 Hasura 配置。

这是我想传递给数据库连接 URL 的东西吗?

我该怎么做?

4

1 回答 1

2

您需要将证书挂载到 docker 容器中,然后配置 libpq(这是 hasura 在下面使用的)以将所需的证书与这些环境变量一起使用。它会是这样的(我没有测试过):

docker run -d -p 8080:8080 \
  -v /absolute-path-of-certs-folder:/certs
  -e HASURA_GRAPHQL_DATABASE_URL=postgres://hostname:port/dbname \
  -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
  -e PGSSLMODE=verify-ca \
  -e PGSSLCERT=/certs/client-cert.pem \
  -e PGSSLKEY=/certs/client-key.pem \
  -e PGSSLROOTCERT=/certs/server-ca.pem \
  hasura/graphql-engine:latest
于 2019-08-12T05:47:25.390 回答