Dokku Django

2025 年 3 月 18 日 | 13 分钟阅读

什么是 Dokku?

Dokku 是一个 2013 年发布的开源项目,旨在简化基于 Docker 的应用程序托管平台的设置。Dokku 用 Ruby 编写,使用 Docker 来管理应用程序和容器。

Dokku 是一个基于容器的部署平台,用于运行在 Docker 容器中的应用程序。它类似于 Heroku,但有一些关键区别。其中一个主要区别是 Dokku 不使用 buildpack,而是依靠容器来构建和部署您的应用程序。

Dokku 还比 Heroku 具有更多功能,例如在单个实例上运行多个应用程序以及轻松添加和删除插件的能力。总的来说,对于那些寻求一种简单方式来部署基于 Docker 的应用程序的人来说,Dokku 是一个不错的选择。

要将 Dokku 与 Django 一起使用,您需要创建一个 Profile 并向其中添加以下行

您还需要创建一个 requirements.txt 文件并添加所有依赖项。完成此操作后,您可以将代码推送到 Dokku 实例,它将自动部署。

什么是 Django?

Django 是一个 Web 开发框架,使开发人员能够快速轻松地创建 Web 应用程序。它用 Python 编程语言编写,是根据 GNU 通用公共许可证发布的免费开源软件。

如何将 Dokku 和 Django 一起使用?

Dokku 是托管 Django 应用程序的好方法。本章将向您展示如何设置 Dokku 和 Django。我们还将向您展示如何使用 Dokku 的内置功能来改进您的开发工作流程。

如何设置 Dokku 和 Django 开发环境?

这将向您展示如何设置 Dokku 和 Django 开发环境。Dokku 是一个自托管的平台即服务 (PaaS),可以轻松部署 Web 应用程序。Django 是一个用于 Python 的 Web 框架,可以轻松构建 Web 应用程序。

要设置 Dokku 和 Django 开发环境,您需要以下内容

  • 安装了 Ubuntu 16.04 的计算机。
  • 一个域名。
  • 您的域名的证书。
  • 您的计算机上安装了 Dokku。
  • 您的计算机上安装了 Django。

首先,您需要在计算机上安装 Ubuntu 16.04。您可以从 Ubuntu 网站下载它

https://www.ubuntu.com/download/desktop

以下是下载 Ubuntu 的步骤:-

  1. 访问 Ubuntu 官方网站 (https://ubuntu.com/download)
  2. 选择您要下载的版本
  3. 按照您的操作系统的说明进行操作
  4. 等待下载完成;这通常需要大约 20 分钟
  5. 下载完成后,您可以在计算机上安装 Ubuntu

接下来,您需要购买一个域名。您可以在 NameCheap 网站上找到如何执行此操作的说明

https://www.namecheap.com/

以下是在 Namecheap 上购买域名的步骤:-

  1. 访问 Namecheap 网站 (https://www.namecheap.com/)
  2. 在搜索框中输入您要购买的域名
  3. 查找可用域名并选择您想要的域名
  4. 将域名添加到购物车并继续结账
  5. 选择您的付款方式并完成付款流程
  6. 然后您将收到一封确认购买的电子邮件

一旦您有了域名,您将需要为您的域名购买证书。您可以在 Let's Encrypt 网站上找到如何执行此操作的说明

https://letsencrypt.openssl.ac.cn/getting-started/

以下是在 Let's Encrypt 上为您的域名购买证书的步骤:-

  1. 访问 Let's Encrypt 网站 (https://letsencrypt.openssl.ac.cn/)
  2. 输入您要使用证书保护的域名
  3. 按照提供的说明生成并安装证书
  4. 最后,配置您的 Web 服务器以使用 Dokku 网站上的新证书安装 Dokku 的步骤。

一旦您有了域名和证书,您将需要在计算机上安装 Dokku。您可以在 Dokku 网站上找到如何执行此操作的说明

https://dokku.com/docs/getting-started/installation/

以下是在 Dokku 网站上安装 Dokku 的步骤:-

  1. 访问 Dokku 网站 (https://dokku.viewdocs.io/)
  2. 下载并安装 Dokku 一键式安装程序
  3. 按照提供的说明完成安装过程
  4. 安装完成后,您将能够在您的 Web 服务器上访问 Dokku。

安装 Dokku 后,下一步是安装 dokku-alt 插件。此插件提供了一些标准 Dokku 安装中没有的附加功能。

要安装插件,请运行以下命令

现在插件已安装,您需要配置它。配置文件位于 / etc / dokku - alt / dokku - alt . Conf。您需要编辑此文件并将 DOKKU_ALT_DOMAIN 变量设置为您的域名(例如,example.com)。此外,您还需要将 DOKKU_ALT_HOSTNAME 变量设置为您的主机名(例如,dokku.example.com)。

接下来是配置您的 Django 项目以与 dokku-alt 一起使用。在您的项目的 settings 文件(通常称为 settings.py)中,您需要添加以下几行

安装 Dokku 后,您需要在计算机上安装 Django。您可以在 Django 网站上找到如何执行此操作的说明

https://docs.django.ac.cn/en/dev/

以下是在 Django 网站上安装 Django 的步骤

  1. 访问 Django 官方网站 (https://django.ac.cn/)。
  2. 按照说明下载并安装最新版本的 Django。
  3. 安装完成后,您将能够在计算机上访问 Django。

安装 Dokku 和 Django 后,您就可以开始开发 Web 应用程序了。

如何设置 Django 项目?

设置 Django 项目可能是一项艰巨的任务。但只需几个简单的步骤,您就可以在短时间内启动并运行您的项目。在本章中,我们将向您展示如何设置您的环境并创建您的第一个 Django 项目。

首先,您需要安装 Python。如果您没有安装 Python,可以从 Python 网站下载。安装 Python 后,您需要安装 Django。要安装 Django,请打开终端并运行以下命令

接下来,您需要创建一个新项目。为此,请在终端中运行以下命令

这将创建一个新目录 myproject,其中包含您的项目所需的所有文件和文件夹。

现在,您需要设置您的环境。在您的项目目录中,您会找到一个名为 settings.py 的文件。此文件包含您项目的所有设置。您需要编辑此文件以设置您的环境。

您需要做的第一件事是设置 DJANGO_SETTINGS_MODULE 环境变量。此变量告诉 Django 要使用哪个设置文件。要设置此变量,请将以下行添加到您的 settings.py 文件中

接下来,您需要设置 SECRET_KEY 环境变量。此变量用于加密 cookie 和其他敏感数据。要设置此变量,请将以下行添加到您的 settings.py 文件中

最后,您需要设置 ALLOWED_HOSTS 环境变量。此变量告诉 Django 哪些主机被允许访问您的项目。要设置此变量,请将以下行添加到您的 settings.py 中

如何使用 Django 模板

Django 模板是一种简单而强大的创建动态网页的方法。它们用类似于 Python 的语言编写,允许您将 Python 代码插入到模板中以创建动态生成的内容。

要创建 Django 模板,请创建一个扩展名为 .html 的新文件。在模板内部,您可以使用 {% %} 标签插入 Python 代码。例如,要插入当前时间,您将使用以下代码

{% now %}

这将以“2017 年 12 月 5 日,星期二 13:27:10”的格式打印当前时间。

您还可以使用 {% load %} 标签加载其他模板。如果您在多个模板中重复使用常见的 HTML 片段,这会很有用。

要在您的 Django 项目中使用模板,请将模板名称添加到 settings.py 文件中的 TEMPLATES 设置中。Django 将自动加载模板并渲染它。

将您的 Django 应用程序部署到 dokku

假设您的 Django 应用程序已准备好并在您的本地机器上运行,您可以将其部署到 Dokku 实例。在我们开始之前,请确保您具备以下先决条件

  • 一个 Dokku 实例已启动并正在运行。
  • 您的本地机器上安装了 Dokku 客户端。
  • 您的本地机器上的 Django 应用程序代码库。

现在让我们开始吧。您首先需要在 Django 项目的根目录中创建一个名为 Procfile 的文件。此文件将告诉 Dokku 如何运行您的应用程序。将以下行添加到 Profile 中

这告诉 Dokku 使用 gunicorn 运行您的 Django 应用程序并将其绑定到端口 $PORT(部署应用程序时 Dokku 将注入该端口)。接下来,在您的项目根目录中创建一个名为 requirements.txt 的文件。此文件将包含您的 Django 应用程序所依赖的所有 Python 包的列表。例如

Django==1.8.4

gunicorn==19.3

如何创建 Dokku 应用程序?

假设您已经设置并可访问 Dokku 主机,创建新应用程序就像从您的本地开发环境运行此命令一样简单

这将在 Dokku 服务器上创建一个新的远程 Git 存储库,并添加一个 post-receive 钩子,该钩子将在推送时自动部署您的代码。现在您可以将新创建的远程添加到您的本地 Git 存储库并将您的代码推送到它

git remote add dokku [email protected]:myapp git push dokku master

如何设置 Dokku 数据库?

假设您已部署并运行 Dokku 应用程序,第一步是设置 Dokku 数据库。这可以使用 Dokku 命令行工具完成。

首先,SSH 到您的 Dokku 服务器并导航到您的应用程序文件夹

然后,使用 `dokku` 命令创建一个新的 Postgres 数据库

这将为您的应用程序创建一个名为 `my-db` 的新 Postgres 数据库。接下来,您需要配置您的应用程序以使用此数据库。这可以通过设置 `DATABASE_URL` 环境变量来完成

将 `my-app` 替换为您的应用程序名称,将 `my-db` 替换为您的数据库名称。这将告诉您的应用程序在连接到 Postgres 时使用 `my-db` 数据库。

现在您的应用程序已配置为使用 `my-db` 数据库,您可以向其中填充数据。有关如何执行此操作的更多信息,请参阅您的特定数据库管理系统的文档。

Dokku 存储设置

部署应用程序的挑战之一是管理持久数据,例如文件上传、数据库数据以及即使在应用程序重新启动后仍需要持久存在的其他文件。

为了解决这个问题,Dokku 提供了一个存储插件,允许您为您的 Dokku 应用程序管理持久存储。使用 Dokku 存储插件,您可以在服务器上创建一个存储目录,然后将其挂载到特定的 Dokku 应用程序。这允许您持久存储数据,即使在应用程序重新启动后也可以访问它。

以下是为 Dokku 应用程序设置存储的步骤

  1. 安装 Dokku 存储插件:Dokku 存储是 Dokku 的一个插件,允许您为 Dokku 应用程序管理持久存储。要安装它,您需要在 Dokku 服务器上运行命令 dokku plugin: install https://github.com/dokku/dokku-storage.git。这将为您下载并安装插件。
  2. 创建存储目录:要持久存储数据,您需要在服务器上创建一个目录。您可以使用任何您喜欢的位置,但建议使用不直接从互联网访问的位置,例如 /var/lib/dokku/data/storage/<app-name>。
  3. 将存储目录映射到 Dokku 应用程序:此步骤涉及将您在上一步中创建的存储目录挂载到特定的 Dokku 应用程序。您可以通过运行命令 dokku storage: mount <app-name> /var/lib/dokku/data/storage/<app-name>:/app/storage 来完成此操作。命令中的 <app-name> 是指您要挂载存储的 Dokku 应用程序的名称。/var/lib/dokku/data/storage/<app-name> 是存储目录的路径,/app/storage 是应用程序内部存储将挂载到的路径。
  4. 重新启动 Dokku 应用程序:要应用您在上一步中所做的更改,您需要重新启动 Dokku 应用程序。您可以通过运行命令 dokku ps: restart <app-name> 来完成此操作。这将重新启动应用程序并激活存储插件。
  5. 验证存储:重新启动应用程序后,您可以通过访问 Dokku 应用程序中的 /app/storage 目录来验证存储是否已成功挂载。您可以使用 ls 命令或任何其他文件管理工具来检查存储在目录中的数据是否持久存在,并且即使在应用程序重新启动后也可以访问。

存储基本代码

Dokku 上的 Django Admin 访问

要在 Dokku 部署的应用程序中访问 Django 管理界面,您需要将 Django 管理 URL 公开到互联网,并使用用户名和密码进行保护。为此,您可以使用身份验证插件,例如 Apache 基本身份验证,或者设置 SSL 证书并通过 HTTPS 提供 Django 管理界面。

设置 Django 管理界面访问后,您可以登录管理界面并管理 Django 应用程序中的数据。这对于添加和编辑内容、管理用户以及修改 Django 应用程序中存储的其他数据非常有用。

要在 Dokku 部署的 Django 应用程序上访问 Django 管理界面,您需要按照以下步骤操作

  1. 在您的 Dokku 应用程序中设置 DJANGO_SETTINGS_MODULE 环境变量:您可以通过运行以下命令在 Dokku 中设置环境变量:dokku config:set <app-name> DJANGO_SETTINGS_MODULE=<project-name>.settings。将 <app-name> 替换为您的 Dokku 应用程序的名称,将 <project-name> 替换为您的 Django 项目的名称。
  2. 更新 Django settings 文件中的 ALLOWED_HOSTS 设置:您需要将您的 Dokku 应用程序的主机名添加到 Django settings 文件中的 ALLOWED_HOSTS 设置中。这将允许您的 Django 应用程序接受来自指定主机的请求。例如,如果您的 Dokku 应用程序部署在 myapp.example.com,您将把 myapp.example.com 添加到 ALLOWED_HOSTS 设置中。
  3. 创建超级用户帐户:您需要在 Django 应用程序中创建超级用户帐户才能访问管理界面。您可以通过运行以下命令来完成此操作:dokku run <app-name> python manage.py createsuperuser。
  4. 访问管理界面:完成上述步骤后,您可以通过在 Web 浏览器中访问 http://<app-name>.<domain>.com/admin 来访问 Django 管理界面,将 <app-name> 替换为您的 Dokku 应用程序的名称,将 <domain> 替换为您的服务器的域名。系统将提示您使用在上一步中创建的超级用户帐户登录。

添加域名

为您的 Dokku 应用程序添加自定义域是将域名映射到 Dokku 服务器 IP 地址的过程。这允许用户使用易于记忆和键入的域名访问您的应用程序,而不是记住您服务器的 IP 地址。

要为您的 Dokku 应用程序添加自定义域,请按照以下步骤操作

  1. 购买域名:从域名注册商(例如 GoDaddy、Namecheap 或 Google Domains)购买域名。
  2. 配置域名服务器 (DNS):配置域名的 DNS 设置以指向 Dokku 服务器的 IP 地址。这通常通过域名注册商的控制面板完成。
  3. 将域名添加到 Dokku:要将域名添加到您的 Dokku 应用程序,您可以使用 dokku domains: add 命令。例如,如果您的域名是 example.com,您将运行以下命令:dokku domains:add <app-name> example.com。将 <app-name> 替换为您的 Dokku 应用程序的名称。
  4. 重新启动您的 Dokku 应用程序:添加域名后,您需要重新启动您的 Dokku 应用程序以应用更改。您可以使用以下命令完成此操作:dokku ps:restart <app-name>。
  5. 验证域名:最后,您可以通过在 Web 浏览器中访问该域名来验证域名是否配置正确。如果一切设置正确,您应该会看到您的 Dokku 应用程序托管在自定义域名上。

基本代码

使用 Dokku 和 Django 开发环境有哪些好处?

Dokku 和 Django 开发环境可以为您的项目提供许多好处。通过使您的开发环境与生产环境保持同步,您可以避免一些常见问题。此外,使用 Dokku 和 Django 开发环境可以帮助您更多地了解 Django 及其工作原理。

使用 Dokku 和 Django,您可以创建一个功能强大的 Web 开发环境,该环境易于设置和使用。

Dokku 和 Django 之所以是绝配,有多种原因。Dokku 是一个轻量级的平台即服务 (PaaS),可以轻松部署和管理您的应用程序。Django 是一个强大的 Web 开发框架,可帮助您快速轻松地构建高质量网站。当 Dokku 和 Django 结合使用时,它们提供了一种快速、简单且可靠的方式来开发和部署 Web 应用程序。

Dokku 和 Django 结合使用的一些好处包括:-

  1. 快速简便的部署:Dokku 使部署您的应用程序变得容易,而 Django 提供了一个快速可靠的 Web 开发框架。
  2. 可伸缩性:Django 是一个可伸缩的 Web 开发框架,可以处理大量流量。
  3. 易于使用:Dokku 是一个轻量级的 PaaS,易于使用和配置。
  4. 灵活性:Dokku 和 Django 提供了极大的灵活性,并允许您轻松自定义应用程序。

结论

总之,Dokku 是一个功能强大且轻量级的 PaaS 解决方案,适用于希望快速轻松部署其应用程序的开发人员。通过将其与 Django 结合使用,您可以利用 Dokku 的稳定性和可伸缩性,同时仍然利用使 Django 成为如此有吸引力的开发框架的所有功能。

凭借其简单的设置过程、预配置环境和对多种语言的支持,Dokku 是任何 Web 应用程序开发项目的绝佳选择。