如何使用 Dokku 部署有状态应用

阅读时长 8 分钟读完

在本文中,我将介绍如何使用 Dokku 部署有状态应用。Dokku 是一个开源的轻量级平台,可以帮助您快速、简单地部署和管理应用程序。

什么是 Dokku?

Dokku 是一个基于 Docker 的开源平台,可以将应用部署到自己的服务器上。使用 Dokku,您可以轻松地将您的应用程序部署到云服务器上,而无需编写复杂的部署脚本。

Dokku 支持多种编程语言和框架,如 Ruby、Node.js、Python、Go、Java 和 PHP 等。此外,Dokku 还具有易于使用的 CLI 工具、简单的部署流程和灵活的插件系统。

安装 Dokku

首先,您需要将 Dokku 安装到您的服务器上。Dokku 支持多种 Linux 发行版,例如 Ubuntu、Debian、CentOS 和 Fedora。

安装 Dokku 非常简单,可以使用官方的一键安装脚本来自动化此过程。

以下是安装 Dokku 的步骤:

  1. 首先,将自己的服务器准备好,确保已经安装好了 Docker 和 Git 等必要的软件。

  2. 接着,使用如下命令获取 Dokku 官方的安装脚本:

  1. 然后,运行安装脚本来安装 Dokku:
  1. 安装完成后,您需要为 Dokku 创建一个安全密钥。运行以下命令:

替换 yourname@yourdomain.com 为您自己的电子邮件地址。这会将您的公钥文件添加到 Dokku 的 SSH 授权列表中。

  1. 最后,您需要访问 Dokku 管理界面。在浏览器地址栏中输入您的服务器 IP 地址和端口号 http://<your-server-ip>:2000,将会看到 Dokku 管理界面。您可以在此处通过 web 界面来管理应用程序的部署、配置和日志等。

部署有状态应用程序

现在,您已经安装好了 Dokku,接下来我们将学习如何使用 Dokku 部署一个简单的有状态应用程序。在这个示例中,我们将使用 Node.js 和 MongoDB 来构建一个 TODO 应用程序。

以下是我们需要完成的步骤:

  1. 创建 Node.js 应用程序
  2. 配置应用程序
  3. 部署应用程序

创建 Node.js 应用程序

首先,创建一个新的 Node.js 项目:

接着,使用以下命令安装 Express 和 MongoDB:

创建一个名为 server.js 的文件,并编写以下代码,定义一个简单的 Express 应用程序来处理 HTTP 请求:

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

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

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

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

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

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

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

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

其中,我们定义了一个名为 Todo 的数据库模型,在请求 /todos 时返回所有的 todo 项,在请求 /todos 时创建一个新的 todo 项。这个应用程序将监听 3000 端口。

此时,您可以使用以下命令在本地启动此应用程序:

访问 http://localhost:3000/todos 可以看到一个空数组。我们将在部署应用程序之前插入一些测试数据。

配置应用程序

接下来,我们需要将 MongoDB 配置到我们的应用程序中。在生产环境中,我们需要将 MongoDB 的连接字符串配置到 Dokku 的环境变量中。

首先,在本地完成开发和测试后,我们需要将应用程序提交到一个 Git 仓库,以便在服务器上进行部署。

然后,将 Git 仓库推到您的服务器上。在本例中,我们需要将应用程序推送到 Dokku。

首先,在本地添加一个远程 Git 仓库:

然后,使用以下命令将应用程序推送到服务器上:

在推送到服务器时,Dokku 将检查 package.json 中的 Node.js 版本,并使用 Node.js 和 npm 在服务器上安装应用程序的依赖项。在此过程中,Dokku 还将使用 Docker 创建一个容器,并在其中运行应用程序。

Dokku 会根据 package.json 文件中的启动命令来运行应用程序。在示例中,启动命令定义在 scripts 属性下的 start 项中。

Dokku 还会配置应用程序的环境变量。在本例中,我们需要将 MongoDB 的连接字符串配置到 Dokku 的环境变量中。

在服务器上运行以下命令:

请替换 <your-mongodb-host><your-mongodb-database> 为您自己的 MongoDB 主机和数据库名称。

最后,使用以下命令在服务器上创建一个名为 MongoDB 的插件,并将其与 todo-app 应用程序相关联。

这将使用 Docker 安装 MongoDB 并将其与我们的应用程序关联起来。当我们需要创建新的 MongoDB 实例时,我们只需使用 dokku mongo:create 命令,并使用 dokku mongo:link 命令将其关联到我们的应用程序上。

部署应用程序

现在,我们已经完成了应用程序的配置,我们可以使用 Dokku 部署我们的应用程序了。

在执行部署命令之前,您需要使用以下命令创建一个名为 todo-app 的应用程序:

然后,使用以下命令将应用程序部署到服务器上:

在完成部署之后,您可以使用以下命令查看应用程序的状态:

Dokku 还可以为您提供应用程序的日志、部署历史记录、插件列表和其他有用的信息。您可以使用 Dokku CLI 来执行这些操作。

结论

在本文中,我们介绍了如何使用 Dokku 来部署有状态应用程序。我们了解了如何安装 Dokku,如何配置应用程序并使用 MongoDB,以及如何将应用程序部署到服务器上。

Dokku 是一个功能强大且易于使用的平台,可以帮助开发人员和团队快速、简单地部署和管理应用程序。无论您是一个初学者还是一个有经验的开发人员,都可以使用 Dokku 来缩短您的部署周期,并为您的应用程序提供高度可靠和可扩展的基础设施。

示例代码:https://github.com/cnkichen/todo-app-dokku

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

纠错
反馈