5

我正在尝试开始使用在 Docker 中的 OSX 上本地运行的Hasura GraphQL 引擎并连接到现有数据库,但我无法找到容器或 Hasura 控制台。

这是我所拥有的:

docker -v
Docker version 19.03.5, build 633a0ea
docker-compose -v
docker-compose version 1.25.4, build 8d51620a
docker images
hasura/graphql-engine v1.0.0
hasura version
INFO hasura cli version=v1.0.0

这是我的启动脚本 (docker-run.sh),它为 Hasura 设置端口和环境变量:

#!/bin/bash
docker run -d -p 8080:8080 \
-e HASURA_GRAPHQL_DATABASE_URL=postgres://someuser:somepassword@host.docker.internal:5432/somedb \
-e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
hasura/graphql-engine:latest

运行./docker-run.sh返回一个 64 字符的十六进制字符串,我假设它是容器 ID,但是运行时我看不到容器docker ps,并且没有加载任何内容http://localhost:8080/console

我错过了什么?

更新 1

我可以在运行时看到容器docker ps -a- 它的状态为exited(1)(这意味着应用程序错误)。

我可以在日志中看到:

{"path":"$","error":"pgcrypto extension is required, but the current user doesn’t have permission to create it. Please grant superuser permission, or setup the initial schema via https://docs.hasura.io/1.0/graphql/manual/deployment/postgres-permissions.html","code":"postgres-error"}

我已按照设置初始模式的说明进行操作,但运行结果./docker-run.sh没有改变。

更新 2

我没有意识到必须在特定数据库上安装pgcrypto扩展。现在我已经这样做了,日志看起来很健康——尽管我在运行时仍然无法访问控制台hasura console

这是我的config.yaml

endpoint: http:localhost:8080

...以及由此产生的错误:

FATA[0001] version check: failed to get version from server: failed making version api call: Get http:localhost:8080/v1/version: http: no Host in request URL

再说一次,我错过了什么?

更新 3

更改了 config.yaml...

endpoint: http://localhost:8080

哎呀(脸红)。

好的,它正在工作:)

4

0 回答 0