28K star!开源的自建PaaS平台,拥有自己的Heroku

文摘   科技   2024-09-09 11:18   北京  

点击上方蓝字关注我们

IT 咖啡馆,探索无限可能!

恭喜你发现了这个宝藏,这里你会发现优质的开源项目、IT知识和有趣的内容。

 

想把自己的开发成果发布出去,就要解决部署的问题,感觉完全从头搞定部署很复杂?很多人会考虑使用各种PaaS平台,比如Heroku、Vercel。

今天我们分享的开源项目,它让你可以构建一个属于自己的PaaS平台,以后部署项目只需要简单的几行命令就可以搞定,它就是:Dokku




Dokku 是什么



dokku是一个基于 Docker 的 PaaS,可帮助您构建和管理应用程序的生命周期,你可以把它理解成Docker 支持的迷你 Heroku。

它帮助您管理服务器上运行的软件,通过处理源代码的移动、站点的容器化、域的分配、构建、SSL 证书等,使部署变得简单。

Dokku 自身不支持数据库,但是可以通过插件的形式来支持。从传统的 MariaDB,PostgreSQL,到 CouchDB,Elasticsearch 等等。

 




安装 Dokku


 

系统要求

 

要开始使用 Dokku,你需要一个满足以下最低要求的系统:

  • 全新安装以下任一操作系统:

    • Ubuntu 20.04/22.04

    • Debian 10+ x64

  • 具有以下架构之一的服务器

    • AMD64(也称为x86_64)或ARMV8(也称为arm64

为了避免应用程序在构建或运行时出现内存压力,至少 1 GB 的系统内存。

另外就是建议至少准备一个域名来绑定到部署Dokku 的服务器。


部署安装

 

你可以在自己的硬件或者云上来部署,要安装最新稳定版本的 Dokku,您可以运行以下 shell 命令:

# for debian systems, installs Dokku via apt-getwget -NP . <https://dokku.com/install/v0.34.8/bootstrap.sh>sudo DOKKU_TAG=v0.34.8 bash bootstrap.sh

安装过程大约需要 5-10 分钟,具体取决于互联网连接速度。

 

设置密钥和域名

 

安装完成后,您应该配置一个 ssh 密钥并设置您的域名。

# usually your key is already available under the current user's `~/.ssh/authorized_keys` filecat ~/.ssh/authorized_keys | dokku ssh-keys:add admin
# you can use any domain you already have access to# this domain should have an A record or CNAME pointing at your server's IPdokku domains:set-global dokku.me
# you can also use the ip of your serverdokku domains:set-global 10.0.0.2
# finally, you can use sslip.io to get subdomain support# as you would with a regular domain name# this would be done by appending `.sslip.io` to your ip addressdokku domains:set-global 10.0.0.2.sslip.io

在主机上设置完成后,您可以通过 Git 将与 Heroku 兼容的应用程序推送到主机。





使用 Dokku




部署方式

Dokku 支持通过几种方式部署应用程序:

  • 通过Herokuish 的Heroku buildpacks:查看herokuish buildpacks 文档,了解指定 buildpack 的不同方法。这是 Dokku 使用的默认方法。

  • Dockerfile:查看dockerfile 文档,了解配置基于 Dockerfile 的部署的不同方法。

  • Docker 镜像:查看Docker 镜像文档,了解如何部署 Docker 镜像。

我们完成Dokku的安装后,你就可以使用git push 部署应用程序,接下来就用官方的示例项目来看下部署的过程。

git clone <https://github.com/heroku/ruby-getting-started>

 

创建应用程序

SSH 进入 Dokku 主机并创建应用程序,如下所示:

# on the Dokku hostdokku apps:create ruby-getting-started

 

创建支持服务


Dokku 默认为新创建的应用提供数据存储(例如 MySQL、PostgreSQL)。你可以通过安装插件来添加数据存储支持,Dokku 项目为常见的数据存储提供了官方插件。

入门应用程序需要 PostgreSQL 服务,因此请安装插件并创建相关服务,如下所示

# plugin installation requires root, hence the user changesudo dokku plugin:install <https://github.com/dokku/dokku-postgres.git>
# create a postgres service with the name railsdatabasedokku postgres:create railsdatabase

 

链接到应用程序

创建服务后,您可以DATABASE_URL通过链接服务来设置环境变量,如下所示:

# on the Dokku host# each official datastore offers a `link` method to link a service to any applicationdokku postgres:link railsdatabase ruby-getting-started

 

部署应用

现在您可以将ruby-getting-started应用程序部署到 Dokku 服务器。您所要做的就是添加一个远程来命名应用程序。应用程序是在 Dokku 服务器上即时创建的。

# from your local machine# the remote username *must* be dokku or pushes will failcd ruby-getting-startedgit remote add dokku dokku@dokku.me:ruby-getting-startedgit push dokku main

部署的过程可以参考以下的效果。





总结



总的来说Dokku是一个非常有用的工具,虽然现在的PaaS平台非常强大,比如vercal、firebase等,但如果你不想受制于人或是想完全的掌握自己的数据,那么可以通过Dokku来构建自己的平台,能力也很强大。另外你可以通过它的起来,来考虑构建和实现自己的PaaS来提供给别人使用。

   




项目信息



  • 项目名称:dokku

  • GitHub 链接:https://github.com/dokku/dokku

  • Star 数:28K



往期推荐

16K star!网站内容变化实时监控,快速掌握一手信息

8K star!开源行为检测引擎,更适合云原生环境

「Github一周热点39期」开源RAG UI、AI证件照、开源免费ERP等5个项目

  




识别二维码关注我们
微信号- it-coffee
B站 - IT-咖啡馆
头条号- IT咖啡馆

IT咖啡馆
开源项目、IT技能和有趣的事情
 最新文章