问题描述
我安装了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引擎未运行。试试这个:
- 运行
hasura init
- 在根目录中,创建包含以下内容的
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
- 使用
docker-compose up
启动docker服务 - 在另一个终端中,运行
hasura console --admin-secret myadminsecretkey
。您应该在终端输出中看到控制台的网络地址。
我是hasura的完整入门者,但是我自己遇到了这个问题。
这是真正的解决方案: 在PowerShell中以管理员身份运行命令。 确保config.yaml指向运行您的graphql-engine实例的localhost:PORT。
I.E 遵循Docker设置过程,运行graphql-engine(在docker上) 下一步:hasura init->编辑config.yaml,将其指向引擎运行的位置-> hasura控制台