问题标签 [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.
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 工作之外,还有什么需要做的,或者我只是在这里遗漏了什么?
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()
,但这不会在启动时自动发生。
elixir - 由于 genserver 未启动,酿酒厂启动后挂钩失败
我有一个 Genserver 需要运行才能播种数据。在 distillery 版本上添加启动后挂钩失败,并出现我的 genserver 未运行的错误。
此 genserver 是我的应用程序的子项,releaseTasks 文件与文档https://hexdocs.pm/distillery/guides/running_migrations.html上的文件相同
我怎样才能启动 genserver,这样我的种子就不会失败?
此 genserver 在生产、开发和测试环境中按预期工作。当我在启动应用程序后尝试将种子作为启动后挂钩运行时,会出现唯一的问题
elixir - 对于 Distillery 2.x,如何在发布任务中获取运行时配置值?
所以基本上我需要一些 Ecto 存储库信息(称为“Sample.Repo”)来在 Ecto 3 的发布任务中启动 repo。它在运行时配置中配置了自定义 json 配置提供程序,如https://hexdocs 中所述。 pm/distillery/2.0.0-rc.5/config_providers.html。
当我做类似的事情时:
我回零。
有没有办法在发布任务中获取运行时配置值,或者如果没有,有什么替代解决方案?
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
了,但失败了
任何想法可能会发生什么?
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
没有新配置变量的情况下重新生成。
elixir - Distillery Release 在自定义命令中找不到“release_ctl”
我按照README中的说明为我的 Distillery Release 创建了一个自定义命令,但我创建的脚本似乎找不到release_ctl
。我正在使用 Distillery 2.1.1
例如,以下脚本...
...退出,退出代码为1
. 为了让它更简单...
...也退出 w/退出代码1
.
有任何想法吗?
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
并得到错误。
elixir - 混合酒厂.release 未找到
我正在尝试在本地生成生产版本。当我使用mix distillery.release
时,我遇到错误说 distillery.release 未找到。我{:distillery, "~> 2.0.0"}
的 mix.exs 中有
elixir - 获取“无法配置”版本!与酿酒厂
我正在尝试发布 Distillery 版本并Unable to configure release!
在运行时收到消息_build/dev/rel/acompanhante/bin/acompanhante foreground
。
酒厂的发布配置模块用于:
用于配置运行时的模块:
我在构建应用程序时做错了什么?