在 Docker 容器中部署 GraphQL 应用

阅读时长 4 分钟读完

GraphQL 是一种新式的 API 架构风格,可以更加灵活地组织和查询数据。随着 GraphQL 在前端社区的普及,部署 GraphQL 应用也成为了一项重要的任务。本文介绍如何使用 Docker 容器来部署 GraphQL 应用。

环境准备

在开始之前,我们需要安装 Docker 和 Docker Compose。可以参考官方文档进行安装:

创建 Docker 镜像

要部署 GraphQL 应用,我们需要先创建 Docker 镜像。下面是一个简单的 Dockerfile,用于构建一个 Node.js 的镜像:

-- -------------------- ---- -------
- ------
---- -------

- ------
------- ----

- -- ------------ - -----------------
---- ------------- --

- ----
--- --- -------

- ------
---- - -

- ----
--- ------- --------

此外,还需要创建一个 docker-compose.yml 文件,用于启动容器。下面是一个简单的示例:

这个文件定义了一个名为 “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 镜像,并启动容器。应用将会运行在 http://localhost:4000。

我们可以通过访问 http://localhost:4000/graphql 来进入 GraphQL Playground,可以在这里尝试查询:

应该会得到如下结果:

总结

在本文中,我们学习了如何在 Docker 容器中部署 GraphQL 应用。首先,我们创建了一个 Dockerfile 和 docker-compose.yml 文件,并编写了一个简单的 GraphQL 应用。随后使用 docker-compose 命令构建和启动 Docker 容器。通过这个过程,我们学会了如何使用 Docker 安装和管理一个基本的 GraphQL 应用,并且为未来的应用部署打下了坚实的基础。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64516c0a675af4061b54d911

纠错
反馈