部署到 Heroku
Heroku 是一个流行的all-in-one托管解决方案。
对于您的 Heroku 应用程序,您只需要选择一个虚拟操作系统(堆栈)和预装的软件包(构建包)。安装 Heroku 的 CLI 工具后,您可以使用标准的 git 命令将代码推送到 Heroku,代码将在 Heroku 上从源代码构建并部署。
您可以在 heroku.com 了解更多信息。
注册
您需要一个 Heroku 帐户。如果您没有帐户,请点击此处注册。
CLI 设置
请确保您已安装 Heroku CLI 工具。
Homebrew 安装
brew tap heroku/brew && brew install heroku
其他安装选项
请参阅此处的其他安装选项。
登录
安装 CLI 后,使用以下命令登录
heroku login
…并按照提示操作。
应用程序设置
访问 Heroku 控制面板 以访问您的帐户,并从右上角的下拉菜单中创建一个新的应用程序。Heroku 将询问一些问题,例如区域和应用程序名称,只需按照他们的提示操作即可。
示例项目创建
在本指南中,我们将托管 Swift NIO 的示例 HTTP 服务器 – 您可以将这些概念应用于您自己的项目。让我们从克隆 NIO 开始
git clone https://github.com/apple/swift-nio
确保将我们新克隆的目录设为工作目录
cd swift-nio
默认情况下,Heroku 部署 main 分支。始终确保在推送之前将所有更改签入到此分支。
连接到 Heroku
将您的应用程序与 Heroku 连接(替换为您的应用程序名称)
heroku git:remote -a your-apps-name-here
堆栈选择
截至 2023 年 12 月,Heroku 的默认堆栈是 Heroku 22
heroku stack:set heroku-22 -a your-apps-name-here
当前可用的堆栈在此处列出:此处。
构建包选择
设置构建包以教导 Heroku 如何处理 Swift。Vapor Community 构建包 是任何 Swift 项目的良好构建包。它不安装 Vapor,也没有任何特定于 Vapor 的设置。
heroku buildpacks:set vapor/vapor
Swift 版本选择
我们添加的构建包会在项目根目录中查找 .swift-version 文件,以了解要使用的 Swift 版本。
echo "5.9" > .swift-version
这将创建 .swift-version 文件,内容为 5.9
。
当发布新版本的 Swift 时,构建包需要更新后才能采用最新版本。
Procfile 创建
Heroku 使用 Procfile 来了解如何启动和运行您的应用程序。这包括可执行文件名和任何必要的参数。您将在下面看到 $PORT
,这允许 Heroku 在启动应用程序时分配一个特定的端口。
web: NIOHTTP1Server 0.0.0.0 $PORT
您可以在终端中使用此命令来设置文件
echo "web: NIOHTTP1Server 0.0.0.0 $PORT" > Procfile
此文件的内容可能因您的服务器框架而异。对于 Vapor 应用程序,默认的 Procfile 内容如下
web: Run serve --env production --hostname 0.0.0.0 --port $PORT
总结
现在我们已经添加了 .swift-version
和 Procfile
文件,请确保这些文件已提交到 main
分支,以便包含在您的部署中
git add .swift-version Procfile
git commit -am "Add Swift version file and Procfile"
部署到 Heroku
当您准备好部署时,从终端运行此命令
git push heroku main
这将比常规 git 操作花费的时间长得多,因为 Heroku 将从头开始构建您的项目,包括所有依赖项,验证并部署它。
更多信息可以在此处找到。