语境
我们正在尝试使用edeliver
将 Phoenix Web 应用程序的“热升级”部署到远程虚拟机实例。
我们的目标是每次都构建应用程序的“升级”版本,以便应用程序可以在生产中“热”升级而不会出现任何停机时间。
我们已经成功地在“Hello World”凤凰应用程序上进行了这个“热升级”: https ://github.com/nelsonic/hello_world_edeliver ,它是在构建通过时从 Travis-CI自动部署的。见:https ://travis-ci.org/nelsonic/hello_world_edeliver/builds/259965752#L1752
因此,理论上这种技术应该适用于我们的“真实”应用程序。
尝试使用 Edeliver 部署“真正的”Phoenix 应用程序
运行以下命令(构建升级):
mix edeliver build upgrade --auto-version=git-revision --from=$(git rev-parse HEAD~) --to=$(git rev-parse HEAD) --verbose
即“从以前的 git 版本升级到当前版本”
到目前为止,一切都很好。“发布成功搭建! ”
错误:vm.args: No such file or directory
当我们尝试部署升级时:
mix edeliver deploy upgrade to production --version=1.0.3+86d55eb --verbose
cat: /home/hladmin/healthlocker/releases/1.0.3+86d55eb/vm.args: No such file or directory
注意:我们有一个小 bash 脚本,它读取可用的最新升级版本
.deliver/releases
并部署它:version.sh
问题:
有没有办法忽略文件的缺失vm.args
并继续部署?
或者如果需要文件来完成部署,是否有一些关于如何创建文件的文档?
注意:我们已经阅读了酿酒厂“运行时配置”文档:https ://github.com/bitwalker/distillery/blob/master/docs/Runtime%20Configuration.md ,遗憾的是没有明智的......
附加信息
环境
- 本地主机:运行 Elixir 1.4.2 的 Mac
- 构建主机:运行 Elixir 1.4.5 的Ubuntu 16.04.2 LTS
mix.exs
文件:https ://github.com/healthlocker/healthlocker/blob/continuous-delivery/mix.exsedeliver
版本:1.4.4
- 构建工具:
distillery
版本:1.4.0
- 伞项目:是的。