Dokku Django

Dokku Django

什么是Dokku

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

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

Dokku还比Heroku提供了一些更多的功能,比如在单个实例上运行多个应用程序以及轻松添加和删除插件等。总体而言,Dokku是一个很好的选项,适用于那些寻找一种简单的方法来部署基于Docker的应用程序的人。

要在Django中使用Dokku,你需要创建一个Profile,并将以下代码添加到其中:

web: gunicorn myproject.wsgi -b 0.0.0.0:$PORT

您还需要创建一个 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.org/getting-started/

在 Let’s Encrypt 上为您的域名购买证书的步骤如下:

  1. 前往Let’s Encrypt的网站(https://letsencrypt.org/)
  2. 输入您想要使用证书保护的域名
  3. 按照提供的指示生成和安装证书
  4. 最后,配置您的Web服务器以使用新证书的安装步骤以在Dokku网站上安装Dokku。

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

https://dokku.io/docs/

这里是在Dokku网站上安装Dokku的步骤:

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

一旦您安装了Dokku,下一步是安装dokku-alt插件。该插件提供了一些在标准dokku安装中找不到的额外功能。

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

git clone https://github.com/dokku-alt/dokku-alt.git /var/lib/dokku/plugins/dokku-alt

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

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

import os

SECRET_KEY = os.environ['SEC

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

https://docs.djangoproject.com/en/dev/

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

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

一旦您安装了Dokku和Django,您将准备好开始开发Web应用程序。

如何设置Django项目

设置Django项目可能是一项艰巨的任务。不过,通过几个简单的步骤,您可以在很短的时间内使您的项目运行起来。在本章中,我们将向您展示如何设置您的环境并创建您的第一个Django项目。

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

pip install django

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

django-admin startproject myproject

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

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

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

DJANGO_SETTINGS_MODULE=myproject.settings

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

SECRET_KEY='your_secret_key'

最后,你需要设置ALLOWED_HOSTS环境变量。这个变量告诉Django哪些主机可以访问你的项目。要设置这个变量,请将下面的行添加到你的settings.py文件中:

使用Django模板的方法

Django模板是一种简单但功能强大的创建动态网页的方法。它们是用类似Python的语言编写的,并允许你在模板中插入Python代码以创建动态生成的内容。

要创建一个Django模板,请使用.html扩展名创建一个新文件。在模板中,你可以通过使用{% %}标记来插入Python代码。例如,要插入当前时间,你可以使用以下代码:

{% now %}

这将打印当前时间,格式为”Tue, 05 Dec 2017 13:27:10″。

你也可以使用{% load %}标记来加载其他模板。如果你在多个模板中重用常见的HTML片段,这将非常有用。

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

将Django应用程序部署到dokku

假设你的Django应用程序已经准备好并在本地计算机上运行,你可以将其部署到一个dokku实例。在开始之前,请确保你具备以下先决条件:

  • dokku实例正在运行。
  • 在您的本地计算机上已安装了dokku客户端。
  • 在您的本地计算机上有Django应用程序的代码库。

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

web: gunicorn myproject.wsgi -b 0.0.0.0:$PORT

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

Django==1.8.4

gunicorn==19.3

如何创建一个Dokku应用程序

假设您已经设置并访问了一个Dokku主机,从您的本地开发环境运行以下命令就可以创建一个新的应用程序:

dokku apps:create myapp

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

git remote add dokku stash :myapp git push dokku master

Basic code
#!/bin/bash #

# Set app name #
app_name="my-dokku-app"

# Create the app #
dokku apps:create app_name

# Set environment variables (if any) #
dokku config:setapp_name ENV_VAR_NAME=value

# Add a database to the app (if needed) #  
#dokku plugin:install https://github.com/dokku/dokku-postgres.git #
#dokku postgres: create app_name-database #
#dokku postgres:linkapp_name-database app_name #

# Deploy the app #
# Git repository #
#dokku git:remoteapp_name <repo-url> #
#dokku git: deploy app_name #

# Docker image #
#dokku storage:mountapp_name /var/lib/dokku/data/storage/app_name:/app
#dokku config:setapp_name DOKKU_DOCKER_OPTS="--insecure-registry <registry-url>"
#dokku tags:deploy $app_name <image-name> #

如何设置Dokku数据库

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

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

cd /var/dokku/apps/my-app

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

dokku postgresql: create my-db

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

dokku config: set my-app DATABASE_URL=postgres://postgres@dokku-postgresql-my-db:5432/my-db

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/。
  3. 将存储目录映射到Dokku应用程序:这一步涉及将您在上一步中创建的存储目录挂载到特定的Dokku应用程序上。您可以通过运行命令dokku storage: mount /var/lib/dokku/data/storage/:/app/storage来实现。命令中的是您想要挂载存储的Dokku应用程序的名称。/var/lib/dokku/data/storage/是存储目录的路径,/app/storage是应用程序中存储将被挂载的路径。
  4. 重新启动Dokku应用程序:为了应用您在上一步中所做的更改,您需要重新启动Dokku应用程序。您可以通过运行命令dokku ps: restart 来完成这个操作。这将重新启动应用程序并激活存储插件。
  5. 验证存储:在重新启动应用程序后,您可以通过访问Dokku应用程序中的/app/storage目录来验证存储是否成功挂载。您可以使用ls命令或任何其他文件管理工具来检查在目录中存储的数据是否持久,并且可以在应用程序重新启动后访问。

    存储的基本代码

# Install the Dokku storage plugin #
dokku plugin: install https://github.com/dokku/dokku-storage.git

# Create a storage directory #
mkdir /var/lib/dokku/data/storage/

# Map the storage directory to the Dokku application
dokku storage:mount  /var/lib/dokku/data/storage/:/app/storage

# Restart the Dokku application #
dokku ps:restart 

# Verify the storage #
# (from inside the application) #
ls /app/storage

在dokku上访问Django Admin

要在dokku部署的应用程序中访问Django admin,您需要将Django admin的URL暴露到互联网,并使用用户名和密码进行安全保护。为此,您可以使用诸如Apache基本身份验证之类的身份验证插件,或者设置SSL证书并通过HTTPS提供Django admin。

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

要在dokku部署的Django应用程序上访问Django admin界面,需要按照以下步骤操作:

  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设置文件中更新ALLOWED_HOSTS设置:您需要将Dokku应用程序的主机名添加到Django设置文件中的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 domains: add命令将域名添加到你的Dokku应用程序中。例如,如果你的域名是example.com,你可以运行以下命令:dokku domains:add example.com。将替换为你的Dokku应用程序的名称。
  4. 重新启动Dokku应用程序:在添加域名后,你需要重新启动Dokku应用程序以应用更改。你可以使用以下命令完成:dokku ps:restart 。
  5. 验证域名:最后,你可以通过在网络浏览器中访问域名来验证域名是否配置正确。如果一切配置正确,你应该能够在自定义域名上看到你的Dokku应用程序。

基本代码

# Add the domain to the Dokku application
dokku domains:add <app-name> <domain-name>

# Verify the domain has been added
dokku domains <app-name>

使用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应用程序开发项目的理想选择。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程