Hasura Console error: [...] No connection could be made because the target machine actively refused it

Hasura Console error: [...] No connection could be made because the target machine actively refused it

我安装了 Docker 工具箱版本,以便能够在本地 运行 Hasura。 Docker 功能齐全(我认为)并且是最新的,可以成功拉取图像并启动容器。我认为 Hasura CLI 也已成功安装,因为可以成功执行 hasura version--help 等命令;但是,当我尝试在终端中使用 运行 hasura console 命令时,会返回此错误:

time="2020-09-15T09:28:16-05:00" level=fatal msg="version check: failed to get version from server: failed making version api call: Get http://localhost:8080/v1/version: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it."

我完全禁用了我的防病毒软件和我能找到的所有防火墙,并像文档中建议的那样为 hasura 创建了一个 PATH 环境变量,并再次 运行 命令,但没有解决问题。

有谁知道这可能是什么原因造成的?如果问题含糊不清,我深表歉意,我对 Docker 和 Hasura 都很陌生。如果需要任何进一步的信息,请告诉我!谢谢!!

我认为原因可能是 graphql-engine 不是 运行ning。试试这个:

  1. 运行 hasura init
  2. 在根目录中创建 docker-compose.yaml 文件,内容如下:
version: '3.6'

services:

  postgres:
    image: postgres:13.0
    restart: always
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgres

  graphql-engine:
    image: hasura/graphql-engine:latest
    ports:
      - "8080:8080"
    depends_on:
      - "postgres"
    restart: always
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
      HASURA_GRAPHQL_ENABLE_CONSOLE: "false"
      HASURA_GRAPHQL_DEV_MODE: "true"
      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
      HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
  db_data:

另请参阅:https://hasura.io/docs/1.0/graphql/core/getting-started/docker-simple.html#docker-simple

  1. 使用 docker-compose up
  2. 启动 docker 服务
  3. 在另一个终端 运行 hasura console --admin-secret myadminsecretkey。您应该在终端输出中看到控制台的网络地址。

我是一个完全的hasura菜鸟,但我自己遇到了这个问题。

这是真正的解决方案: 运行 以管理员身份在 powershell 中执行命令。 确保 config.yaml 指向您的 graphql-engine 实例正在 运行 上的 localhost:PORT。

I.E 遵循 docker 设置过程,运行 graphql-engine(在 docker 上) 下一步:hasura init -> 编辑 config.yaml 将其指向引擎所在的位置 运行ning -> hasura console