【祝M1兼容】Hasura×Docker×M1超级入门

在M1Mac上运行Hasura

使用Hasura,您可以轻松体验GraphQL。

最近,Hasura的官方Docker镜像一直未支持M1芯片,但在2021年12月10日时,虽然是测试版,但官方已经宣布推出了支持M1芯片的镜像。

请点击这里获得更详细的信息。

Hasura有两种类型(熟悉的人可以跳过)。

如果你想尝试Hasura,有两种方法可以选择。

    1. 使用Hasura Cloud

 

    使用Docker中的Hasura

Hasura Cloud是什么?

Hasura Cloud 是在云端上处理 Hasura 的工具,可以将其想象成类似 Firebase 的服务。

您可以通过此链接新建一个账户,然后一边点点点而一边创建项目,很容易就可以完成创建。

虽然易于使用,但进行请求的次数有上限,如果不付费就无法无限制地使用。
不过,还有额外的安全功能和数据库作为特典提供。
这适合那些有经济余裕或只是想为了学习而尝试的人。

Hasura Docker 是什么?

使用前面提到的Hasura Cloud可能需要付费,但是您可以免费使用这里的”Hasura Docker”。

这边需要自己准备数据库,但是它是免费的,并且安装方法也很简单,个人觉得这边更推荐。

如何开始使用 Hasura Docker

就像之前提到的那样,Hasura已经提供了官方映像,这样我们就可以在Docker中开始使用它。
让我们准备以下的docker-compose.yml文件。

version: '3.6'
services:
  postgres:
    image: postgres:12
    restart: always
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgrespassword
  graphql-engine:
    image: hasura/graphql-engine:v2.1.0-beta.3.cli-migrations-v2.arm64
    ports:
      - '8080:8080'
    depends_on:
      - 'postgres'
    restart: always
    environment:
      ## postgres database to store Hasura metadata
      HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
      ## this env var can be used to add the above postgres database to Hasura as a data source. this can be removed/updated based on your needs
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
      ## enable the console served by server
      HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' # set to "false" to disable console
      ## enable debugging mode. It is recommended to disable this in production
      HASURA_GRAPHQL_DEV_MODE: 'true'
      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
      ## uncomment next line to set an admin secret
      # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
  db_data:

这个docker-compose.yml文件是根据Hasura官方提供的docker-compose.yml稍作修改后适用于M1的版本。

如果你创建了这个并在docker-compose上启动,它应该会正确运行。
如果你访问localhost:8080,我想你会看到Hasura的控制台。

bannerAds