查看源代码 在 Gigalixir 上部署
我们需要什么
本指南唯一需要的是一个可运行的 Phoenix 应用程序。对于需要部署简单应用程序的人,请参考 快速入门指南。
目标
本指南的主要目标是在 Gigalixir 上运行 Phoenix 应用程序。
步骤
让我们将此过程分成几个步骤,以便我们能够跟踪我们的进度。
- 初始化 Git 仓库
- 安装 Gigalixir CLI
- 注册 Gigalixir
- 创建和设置 Gigalixir 应用程序
- 配置数据库
- 使我们的项目为 Gigalixir 做好准备
- 部署时间!
- 有用的 Gigalixir 命令
初始化 Git 仓库
如果您还没有,我们需要将我们的文件提交到 git。我们可以通过在我们的项目目录中运行以下命令来完成此操作
$ git init
$ git add .
$ git commit -m "Initial commit"
安装 Gigalixir CLI
按照 此处 的说明为您的平台安装命令行界面。
注册 Gigalixir
我们可以在 gigalixir.com 或使用 CLI 注册帐户。让我们使用 CLI。
$ gigalixir signup
Gigalixir 的免费层不需要信用卡,并且附带 1 个应用程序实例和 1 个 PostgreSQL 数据库免费,但如果您运行的是生产应用程序,请考虑升级到付费计划。
接下来,让我们登录
$ gigalixir login
并验证
$ gigalixir account
创建和设置我们的 Gigalixir 应用程序
在 Gigalixir 上部署 Phoenix 应用程序有三种不同的方法:使用 mix,使用 Elixir 的发行版,或使用 Distillery。在本指南中,我们将使用 Mix,因为它是最容易上手的,但您将无法连接远程观察器或热升级。有关更多信息,请参阅 Mix vs Distillery vs Elixir 发行版。如果您想使用其他方法部署,请参考 入门指南。
创建 Gigalixir 应用程序
让我们创建一个 Gigalixir 应用程序
$ gigalixir create -n "your_app_name"
注意:应用程序名称之后无法更改。如果您没有提供名称,将使用随机名称。
验证应用程序是否已创建
$ gigalixir apps
验证是否已创建 git 远程仓库
$ git remote -v
指定版本
我们使用的构建包默认使用非常旧的 Elixir、Erlang 和 Node.js 版本,通常最好在生产环境中运行与开发环境相同的版本,所以让我们这样做。
$ echo 'elixir_version=1.14.3' > elixir_buildpack.config
$ echo 'erlang_version=24.3' >> elixir_buildpack.config
$ echo 'node_version=12.16.3' > phoenix_static_buildpack.config
Phoenix v1.6 使用 esbuild
来编译您的资产,但所有 Gigalixir 镜像都附带 npm
,因此我们将直接配置 npm
来部署我们的资产。如果您没有,请添加一个包含以下内容的 assets/package.json
文件
{
"scripts": {
"deploy": "cd .. && mix assets.deploy && rm -f _build/esbuild*"
}
}
最后,别忘了提交
$ git add elixir_buildpack.config phoenix_static_buildpack.config assets/package.json
$ git commit -m "Set Elixir, Erlang, and Node version"
使我们的项目为 Gigalixir 做好准备
我们不需要做任何事情来让我们的应用程序在 Gigalixir 上运行,但对于生产应用程序,您可能需要强制执行 SSL。要做到这一点,请参阅 强制 SSL
您可能还想在数据库连接中使用 SSL。为此,请在您的 Repo
配置中取消注释 ssl: true
行。
配置数据库
让我们为我们的应用程序配置一个数据库
$ gigalixir pg:create --free
验证数据库是否已创建
$ gigalixir pg
验证是否已创建 DATABASE_URL
和 POOL_SIZE
$ gigalixir config
部署时间!
我们的项目现在可以部署到 Gigalixir 上了。
$ git push gigalixir
检查您的部署状态,并等待应用程序处于 健康
状态。
$ gigalixir ps
运行迁移
$ gigalixir run mix ecto.migrate
检查您的应用程序日志
$ gigalixir logs
如果一切正常,让我们看看您的应用程序在 Gigalixir 上运行的情况
$ gigalixir open
有用的 Gigalixir 命令
打开远程控制台
$ gigalixir account:ssh_keys:add "$(cat ~/.ssh/id_rsa.pub)"
$ gigalixir ps:remote_console
要打开远程观察器,请参阅 远程观察器
要设置集群,请参阅 集群节点
要进行热升级,请参阅 热升级
有关自定义域、扩展、作业和其他功能,请参阅 Gigalixir 文档
故障排除
请参阅 故障排除
此外,请随时发送电子邮件至 [email protected] 或 申请邀请 并加入 Slack 上的 #gigalixir 频道。