GraphQL 是一种新式的 API 架构风格,可以更加灵活地组织和查询数据。随着 GraphQL 在前端社区的普及,部署 GraphQL 应用也成为了一项重要的任务。本文介绍如何使用 Docker 容器来部署 GraphQL 应用。
环境准备
在开始之前,我们需要安装 Docker 和 Docker Compose。可以参考官方文档进行安装:
创建 Docker 镜像
要部署 GraphQL 应用,我们需要先创建 Docker 镜像。下面是一个简单的 Dockerfile,用于构建一个 Node.js 的镜像:
-- -------------------- ---- ------- - ------ ---- ------- - ------ ------- ---- - -- ------------ - ----------------- ---- ------------- -- - ---- --- --- ------- - ------ ---- - - - ---- --- ------- --------
此外,还需要创建一个 docker-compose.yml 文件,用于启动容器。下面是一个简单的示例:
version: '3' services: app: build: . ports: - '4000:4000'
这个文件定义了一个名为 “app” 的服务,使用当前目录下的 Dockerfile 构建镜像。容器将会暴露 4000 端口,并把该端口映射到主机的 4000 端口。
编写 GraphQL 应用
在创建 Docker 镜像之前,我们需要编写一个 GraphQL 应用。这里我们使用 Apollo Server 作为 GraphQL 服务器,并使用 Express 来处理 HTTP 请求。
下面是一个简单的示例:
-- -------------------- ---- ------- ----- - ------------- --- - - --------------------------------- ----- ------- - ------------------- ----- -------- - ---- ---- ----- - ------ ------ - -- ----- --------- - - ------ - ------ -- -- ------ -------- -- -- ----- ------ - --- -------------- --------- --------- --- ----- --- - ---------- ------------------------ --- --- ---------------- -- -- - ------------------- --------- -- --------------------------------------------- ---
这个应用定义了一个名为 “hello” 的查询,返回一个字符串 “Hello world!”。在 Apollo Server 中,所有的查询都需要在 typeDefs 中声明。resolvers 对象定义了如何处理各种查询和变更操作。
构建并启动容器
现在我们将编写好的应用代码和 Dockerfile 和 docker-compose.yml 放在同一个目录下,使用下面的命令构建 Docker 镜像并启动容器:
$ docker-compose up --build
这个命令将会构建 Docker 镜像,并启动容器。应用将会运行在 http://localhost:4000。
我们可以通过访问 http://localhost:4000/graphql 来进入 GraphQL Playground,可以在这里尝试查询:
query { hello }
应该会得到如下结果:
{ "data": { "hello": "Hello world!" } }
总结
在本文中,我们学习了如何在 Docker 容器中部署 GraphQL 应用。首先,我们创建了一个 Dockerfile 和 docker-compose.yml 文件,并编写了一个简单的 GraphQL 应用。随后使用 docker-compose 命令构建和启动 Docker 容器。通过这个过程,我们学会了如何使用 Docker 安装和管理一个基本的 GraphQL 应用,并且为未来的应用部署打下了坚实的基础。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64516c0a675af4061b54d911