Postgresql Docker Compose on Crunchy Postgres和Hasura Graphql引擎-数据库URL设置

Postgresql Docker Compose on Crunchy Postgres和Hasura Graphql引擎-数据库URL设置,postgresql,docker,docker-compose,hasura,Postgresql,Docker,Docker Compose,Hasura,如果问题不清楚或没有足够的信息,请让我知道,因为根据我的理解,我尽了最大的努力来陈述我的问题 我试图用Hasura GraphQL引擎配置Crunchy Postgres图像,我尝试按照文档建议更改主机名,但它根本无法连接到我的Crunchy Postgres图像 文档链接: 我的Docker撰写文件: version: '3.5' services: unipgdb: image: crunchydata/crunchy-postgres:centos7-11.1-2.3.

如果问题不清楚或没有足够的信息,请让我知道,因为根据我的理解,我尽了最大的努力来陈述我的问题

我试图用Hasura GraphQL引擎配置Crunchy Postgres图像,我尝试按照文档建议更改主机名,但它根本无法连接到我的Crunchy Postgres图像

文档链接:

我的Docker撰写文件:

version: '3.5'

services:
  unipgdb:
    image: crunchydata/crunchy-postgres:centos7-11.1-2.3.0
    restart: always
    ports:
      - "5432:5432"
    env_file:
      - ./config/postgres/cpg-env.list
    volumes:
      - unipgdata_volume:/var/lib/postgresql/data
    networks:
      - unicausalapi

  graphql-engine:
    image: hasura/graphql-engine:v1.0.0-alpha37
    ports:
      - "8080:80"
    depends_on:
      - "unipgdb"
    restart: always
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://user:password@postgres:5432/unipgdb
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
      ## uncomment next line to set an access key
      # HASURA_GRAPHQL_ACCESS_KEY: mysecretaccesskey
    networks:
      - unicausalapi

  # For Hasura engine
  caddyhasura:
    build:
      context: .
      dockerfile: caddyhasura-Dockerfile
    depends_on:
      - graphql-engine
    networks:
      - unicausalapi
      - unicausalpublic
      - unicausalnetwork

volumes:
  static_volume:  # <-- declare the static volume
  media_volume:  # <-- declare the media volume
  unipgdata_volume:
      external: true

networks:
   unicausalpublic:
      external: true
   unicausalnetwork:
      external: true
   unicausalapi:
      external: true

有没有想过该怎么做来解决我的问题?提前感谢。

因为Crunchy Postgres容器的名称是
unipgdb
,所以容器的主机名将是相同的。您应该使用这个主机名,而不是
postgres

因此,您的数据库url将成为

HASURA_GRAPHQL_数据库_URL:postgres://user:password@unipgdb:5432/unipgdb

如果您的用户名或密码包含特殊字符(如$、#、@等),请确保对URL进行编码并在URL中使用它们。参考:

例如,如果密码为
secretPassW$或#
,则应将其输入为
secretPassW%24或%23

HASURA_GRAPHQL_DATABASE_URL: postgres://user:password@postgres:5432/unipgdb