需要准备好什么?
- 一个能运行的 Phoenix 应用
- 一个合适的开发环境
- 一个合适的生产环境
我们需要确定生产环境和开发环境的系统架构一样,比如说开发环境是64位的 Linux ,
生产环境也得保持是64位的 Linux。
本文的目标
本文的目标是通过 Exrm(Elixir Release Manager)
生成一个 release 版本,并将 release 部署到服务器,使应用能通过公网访问。
分步进行
让我们把目标拆分成几个步骤来进行吧!
- 添加 exrm 依赖
- 生成 release 版本
- 测试
- 部署
- 公众发布
添加 exrm 依赖
首先在 mix.exs 文件里面添加 {:exrm, “~> 1.0”} 依赖,比如这样:
1 | defp deps do |
声明好依赖文件之后别忘了运行 mix deps.get
和 mix deps.compile
来安装依赖。
安装完依赖可以运行 $ mix help
来查看 exrm 是否可用:
1 | $ mix help |
配置我们的应用
添加完 exrm 之后,我们需要更新一下应用的生产环境配置项。
我们先从 mix.exs
开始:
1 | def application do |
通过这一步,我们能够帮助 Exrm 把依赖捆绑进 release 版本。
同样我们也需要在 config/prod.exs
里面更新一些配置选项,我们需要把服务选项开启,并添加上版本号:
1 | # Configures the endpoint |
生成 release 版本之前,我们还需要预先编译一下静态环境:
1 | $ MIX_ENV=prod mix phoenix.digest |
然后我们生成一个 release 版本:
1 | $ MIX_ENV=prod mix release |