查看源代码 在 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_URLPOOL_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 频道。