hasura/graphql-engine2022年12月7日上午10:00(太平洋标准时间),Hasura从本仓库中移除了受安全漏洞影响的部分镜像,以防止其在生产环境中运行。建议受影响用户立即更新至修复版本。
更多详情请参见安全公告:[***]
| 受影响版本 | 修复版本 |
|---|---|
| v2.15.1, v2.15.0 | v2.15.2 |
| v2.14.0 | v2.14.1 |
| v2.13.1, v2.13.0 | v2.13.2 |
| v2.12.0 | v2.12.1 |
| v2.11.2, v2.11.1, v2.11.0 | v2.11.3 |
| v2.10.1, v2.10.0 | v2.10.2 |
Hasura GraphQL Engine 是一款极速的GraphQL服务器,可在Postgres数据库上提供即时、实时的GraphQL API,支持通过数据库事件触发Webhook,并通过远程模式实现业务逻辑集成。其核心优势在于细粒度访问控制,帮助用户快速构建基于Postgres的GraphQL应用,或为现有Postgres应用增量迁移至GraphQL架构。
!Hasura logo
<version>:指定版本(如v2.15.2),latest对应最新稳定版<version>.cli-migrations-v2、latest.cli-migrations-v2、<version>.cli-migrations-v3、latest.cli-migrations-v3(包含CLI迁移工具)hasura)amd64、arm64Hasura依赖Postgres数据库运行,Postgres部署说明参见官方镜像。
bashdocker run -d -p 8080:8080 \ -e HASURA_GRAPHQL_DATABASE_URL=postgres://用户名:密码@主机名:端口/数据库名 \ -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ hasura/graphql-engine:latest
Hasura控制台将在 http://localhost:8080 可用。
HASURA_GRAPHQL_DATABASE_URL 示例:
postgres://admin:password@localhost:5432/my-db(带密码)postgres://admin:@localhost:5432/my-db(无密码)若Postgres实例运行在本地主机,需调整Docker网络配置以允许容器访问主机服务:
添加 --net=host 标志共享主机网络命名空间:
bashdocker run -d --net=host \ -e HASURA_GRAPHQL_DATABASE_URL=postgres://用户名:密码@localhost:端口/数据库名 \ -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ hasura/graphql-engine:latest
使用 host.docker.internal 作为主机名访问宿主机服务:
bashdocker run -d -p 8080:8080 \ -e HASURA_GRAPHQL_DATABASE_URL=postgres://用户名:密码@host.docker.internal:端口/数据库名 \ -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ hasura/graphql-engine:latest
以下为Hasura与Postgres的docker-compose.yaml示例:
yamlversion: '3.6' services: postgres: image: postgres restart: always volumes: - db_data:/var/lib/postgresql/data # 持久化Postgres数据 graphql-engine: image: hasura/graphql-engine:v1.0.0-beta.6 # 指定Hasura版本 ports: - "8080:8080" # 映射控制台端口 depends_on: - "postgres" # 依赖Postgres服务 restart: always environment: HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:@postgres:5432/postgres # 连接Postgres(服务名作为主机名) HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # 启用控制台(设为"false"禁用) ## 取消注释以设置管理员密钥 # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey volumes: db_data: # 定义数据卷
执行 docker-compose up,待初始化完成后访问 http://localhost:8080 打开Hasura控制台。
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
HASURA_GRAPHQL_DATABASE_URL | Postgres数据库连接URL | postgres://user:pass@postgres:5432/db |
HASURA_GRAPHQL_ENABLE_CONSOLE | 是否启用Web控制台 | true / false |
HASURA_GRAPHQL_ADMIN_SECRET | 管理员密钥(设置后需通过X-Hasura-Admin-Secret头验证) | mysecretkey |
HASURA_GRAPHQL_JWT_SECRET | JWT配置(用于身份验证,JSON格式) | {"type":"HS256", "key":"secret"} |
#、%、$、@等特殊字符,需URL编码(如@编码为%40)。docker logs <容器ID>)。hasura/graphql-engine 镜像包含开源和专有组件:
如需仅含开源组件的镜像,使用标签以 -ce 结尾的社区版(如 hasura/graphql-engine:<VERSION>-ce)。
与所有Docker镜像一样,本镜像可能包含基础系统(如Bash等)及依赖组件,其许可可能不同。
注:文档中提及的外部链接(如event-triggers.md)请参考官方文档获取完整内容。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务