问题标签 [distillery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
904 浏览

elixir - 如何使用 REPLACE_OS_VARS 设置带有酒厂的动态自定义 vm.args?

背景

我正在尝试在几个长生不老药节点之间设置集群。我的理解是我可以通过修改release vm.args来设置它。我正在使用 Distillery 构建版本,并遵循此处的文档:https ://hexdocs.pm/distillery/config/vm.args.html 。

我的rel/vm.args文件如下:

我有一个运行 Ubuntu 18.04 的构建服务器和两个运行 Ubuntu 18.04 的网络服务器。我正在构建服务器上构建版本,将存档复制到网络服务器,然后取消存档并从那里开始。

问题

当我构建我的版本并尝试在网络服务器上运行它时,我在启动时收到以下错误:

上面链接的文档指出:

如果您在开始发布之前在系统环境中导出 REPLACE_OS_VARS=true,则 ${HOSTNAME} 和 ${NODE_COOKIE} 部分将仅在运行时动态替换,因此如果要使用此方法,请确保这样做。

基于此,我添加REPLACE_OS_VARS=true到 webserver 环境中,但似乎没有任何影响。出于绝望,我还将它添加到构建服务器上的环境中,但得到了相同的结果。

除了设置此环境变量以使动态 vm.args 工作之外,还有什么需要做的,或者我只是在这里遗漏了什么?

0 投票
2 回答
1019 浏览

erlang - 如何让 Elixir 节点在启动时自动连接?

背景

我正在尝试在几个长生不老药节点之间设置集群。我的理解是我可以通过修改release vm.args来设置它。我正在使用 Distillery 构建版本,并遵循此处的文档:https ://hexdocs.pm/distillery/config/runtime.html 。

我的 rel/vm.args 文件如下:

我有一个运行 Ubuntu 18.04 的构建服务器和两个运行 Ubuntu 18.04 的网络服务器。我正在构建服务器上构建版本,将存档复制到网络服务器,然后取消存档并从那里开始。

在服务器上,两个 vm.args 文件计算为:

这些版本通过 systemd 运行,配置如下:

问题

两个服务器上的发布都很好,但是当我打开远程控制台并运行时Node.list(),结果是一个空列表,除非我手动连接两个节点。

如果我手动运行,Node.connect(:"my_app@10.10.10.200")我会在每个节点上运行时看到另一个节点Node.list(),但这不会在启动时自动发生。

0 投票
0 回答
56 浏览

elixir - 由于 genserver 未启动,酿酒厂启动后挂钩失败

我有一个 Genserver 需要运行才能播种数据。在 distillery 版本上添加启动后挂钩失败,并出现我的 genserver 未运行的错误。

此 genserver 是我的应用程序的子项,releaseTasks 文件与文档https://hexdocs.pm/distillery/guides/running_migrations.html上的文件相同

我怎样才能启动 genserver,这样我的种子就不会失败?

此 genserver 在生产、开发和测试环境中按预期工作。当我在启动应用程序后尝试将种子作为启动后挂钩运行时,会出现唯一的问题

0 投票
0 回答
92 浏览

elixir - 对于 Distillery 2.x,如何在发布任务中获取运行时配置值?

所以基本上我需要一些 Ecto 存储库信息(称为“Sample.Repo”)来在 Ecto 3 的发布任务中启动 repo。它在运行时配置中配置了自定义 json 配置提供程序,如https://hexdocs 中所述。 pm/distillery/2.0.0-rc.5/config_providers.html

当我做类似的事情时:

我回零。

有没有办法在发布任务中获取运行时配置值,或者如果没有,有什么替代解决方案?

0 投票
1 回答
135 浏览

erlang - Distillery 发布失败:找不到 m{elixir-1.7.2","./lib/elixir-1.7.2 的代码路径

在开始使用现有应用程序之后,我正在尝试在 Gigalixir 上部署我的应用程序。

我已添加[{:distillery, "~> 2.1"}]到我的 mix.deps

构建生产版本

但后来我跑_build/prod/rel/rumbl/bin/rumbl start了,但失败了

任何想法可能会发生什么?

0 投票
1 回答
48 浏览

elixir - 为什么 edeliver 在重新启动时生成不正确的 sys.config

我的目标是向 Elixir/Phoenix 应用程序添加一个新的应用程序环境变量,该应用程序与 distillery 一起发布并与 edeliver 一起部署。

因为我在prod.secret.exs文件中添加了一个新值,所以我希望在nil调用Application.get_env(:my_app, :key)生产主机时不会出现新的环境变量。

相反,我得到nil. 我应用的修复是停止应用程序,删除所有内容并部署全新的版本。我想这不是正确的解决方法。

那么,如何正确添加新的配置变量呢?

到目前为止我所注意到的。我将我需要的配置放入prod.secret.exs文件中,并且在构建过程中蒸馏厂成功使用了它。在生成的版本中,该 sys.config文件包含新的配置变量。但var/sys.config已部署应用程序的文件不包含新配置。如果我手动将新配置放入var/sys.config并重新启动发行版,则会在var/sys.config没有新配置变量的情况下重新生成。

0 投票
1 回答
70 浏览

elixir - Distillery Release 在自定义命令中找不到“release_ctl”

我按照README中的说明为我的 Distillery Release 创建了一个自定义命令,但我创建的脚本似乎找不到release_ctl。我正在使用 Distillery 2.1.1

例如,以下脚本...

...退出,退出代码为1. 为了让它更简单...

...也退出 w/退出代码1.

有任何想法吗?

0 投票
3 回答
523 浏览

elixir - 无法调用任务“distillery.release”

我正在通过几个不同的 How-Tos(项目中的主要内容以及通过 Google 搜索获得的几个)来部署代码,但我找不到解决这个Could not invoke task "distillery.release": 1 error found!问题的方法:

设置

  • 二郎22
  • Elixir 1.10.2(用 Erlang/OTP 21 编译)

mix.exs

.交付/配置

杂项:

我将其复制/home/deployer/hello-world.prod.secret.exs到构建和生产服务器。

比我开始mix edeliver build release并得到错误。

0 投票
0 回答
80 浏览

elixir - 混合酒厂.release 未找到

我正在尝试在本地生成生产版本。当我使用mix distillery.release时,我遇到错误说 distillery.release 未找到。我{:distillery, "~> 2.0.0"}的 mix.exs 中有

0 投票
1 回答
36 浏览

elixir - 获取“无法配置”版本!与酿酒厂

我正在尝试发布 Distillery 版本并Unable to configure release!在运行时收到消息_build/dev/rel/acompanhante/bin/acompanhante foreground

酒厂的发布配置模块用于:

用于配置运行时的模块:

我在构建应用程序时做错了什么?