问题标签 [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 - 使用酿酒厂部署单个文件?
背景
我现在需要部署一个 OTP 应用程序。为了实现这一点,我正在使用酿酒厂。我的目标是将一个自给自足的文件传递给包含所有内容且不需要提取的 PROD 机器。
常规路线
大多数使用酿酒厂的人都会知道通常的路线:
- 跑
MIX_ENV=prod mix release
- 将压缩包复制
build/prod/rel/<name>/releases/<version>/<name>.tar.gz
到部署服务器 - 提取tarbal
- 运行代码。
客观的
我的目标是消除第 3 步。我不想提取任何东西,我只想复制发布并运行它,就像 sudo 可执行文件一样。
– 可执行文件
根据文档,也可以运行MIX_ENV=prod mix release --executable
或MIX_ENV=prod mix release --transient
. 这将创建一个不需要提取的伪可执行文件。
问题
但是,运行MIX_ENV=prod mix release --executable
命令后,我通常会搜索文件build/prod/rel/<name>/releases/<version>/<name>.run
. 从理论上讲,这应该是我需要复制到我的部署服务器中的文件,但我在任何地方都找不到它。
- 我需要将哪个文件复制到部署服务器中,它在哪里?
logging - 使用酒厂管理日志文件
背景
使用 distillery 启动 OTP 应用程序,我注意到所有日志都转到./var/log/
文件夹中的 2 个不同文件:
- erlang.log.1
- run_erl.log
问题
我这里有问题:
- 我不知道
run_erl.log
应该记录什么 - 我想将默认日志路径从更改
./var/log/erlang.log.1
为./log/myapp.log
研究
我已经检查了这个讨论以获取一些提示,但根据它我必须更改:logger
额外应用程序的配置。
这个搜索让我看到了下面的代码片段,它使用:logger_file_backend
https://snippets.aktagon.com/snippets/773-logging-to-a-file-with-elixir
但是我想我在这里追逐一只野鹅。我不认为我的问题的解决方案在于添加更多依赖项,而是在于更改:logger
应用程序的一些配置。
我只是不知道在哪里,也不知道如何。
我该怎么做?
elixir - Edeliver Phoenix 发布失败
我正在尝试按照此处说明的步骤使用 edeliver 发布 phoenix 应用程序。我浏览了互联网,发现有些人有同样的问题,但无论我做什么,我都会在下面遇到同样的错误。
- 我可以使用 SSH 无密码登录
- 我的用户(部署)拥有所有权利
- 用户可以通过 ssh 使用 git
错误信息:
这是我的 .deliver/config 文件:
heroku - Heroku Container multi-stage build failing to find file
I have a docker file with two stages which successfully builds locally. When I attempt to push it to the heroku's container service it fails to build with an error that a file is not available.
Error
Dockerfile
The error occurs at the second mix do compile
What cause this to work locally, but fail on Heroku?
elixir - 如何在应用程序升级之前运行迁移?
根据Distillery 的文档迁移“应该在应用程序升级之前部署”,到目前为止,我已经进行了简单的升级,没有涉及太多的 GenServer 状态更改或应用迁移,事实上,我已经应用了升级,但我已经必须关闭应用程序并重新启动它们才能使发布任务成功应用迁移。我想知道如何按照文档说的提前应用迁移?
soap - 生成的 Soap 客户端在 Elixir Distillery Release 中不起作用
我使用以下库从我的 wsdl 文件中生成了一个肥皂客户端。 https://github.com/bet365/soap
在我的开发环境中一切正常 - 我可以成功调用服务。
问题:当我通过 Distillery 构建我的 Elixir 版本时,它似乎根本不起作用。我得到了先前生成的客户端的回复:
我想到了关于 hrl-records(包含文件夹)或生成的客户端(src 文件夹)的路径问题。所有尝试 - 没有运气。此外,我的应用程序是雨伞应用程序(也许有问题..?)
任何帮助表示赞赏!
deployment - 如何将 elixir 应用程序从 Windows 开发机器部署到 Ubuntu 服务器
我在 Windows 机器上开发了一个应用程序,我需要将它部署到 Ubuntu 18.04 服务器。我想使用的工具是 distillery 和 edeliver。
那么我可以在我的Windows机器上使用distillery构建版本,还是应该在具有与未来生产机器相同的CPU架构和Ubuntu 18.04的机器上构建它,例如创建 Virtualbox Ubuntu 客户机,共享我的应用程序的项目文件夹Windows 主机和来宾机器之间以及在 Ubuntu 来宾机器上构建版本?
如果有人在 Windows 上开发 elixir 应用程序,您可以分享您的部署过程的步骤吗?
elixir - 如何确保 distillery 在版本中包含 Erlang inets?
我的应用程序在尝试运行发布时遇到了这个致命问题:
在我的本地主机上运行它时效果很好mix
,但是 distillery 2 版本有这个问题。
我erlang-inets
从 erlang 解决方案 repo 安装了 ubuntu 包并做了另一个mix release
,但这似乎并没有解决它。
我错过了什么?
docker - Que 因 Distillery 版本和 Docker 失败
我已经使用 Distillery 设置了一个 Docker 环境来生成我的应用程序的发布。
我的应用程序使用 Que 添加一个工人,像这样
但是,当调用此行时,我得到:
它在没有 docker 和 distillery 的情况下在本地运行良好,但不确定为什么它会在上面失败。
我还尝试按照文档中的描述运行预编译应用程序的命令,但没有成功。
iex(my_app@127.0.0.1)1> Que.Persistence.Mnesia.setup!
elixir - 酿酒厂失败并显示消息“多重定义模块:'Elixir.Telemetry'”
当我尝试使用 Distillery 升级正在运行的 Phoenix 应用程序时,构建失败并显示以下消息:
我运行这个应用程序几个月,我已经成功升级了好几次。这一次,我想将 Phoenix 的版本从 1.4.0 提升到 1.4.3。
我在 Elixir 论坛上阅读了这篇文章:
我试过mix deps.clean --all
和mix release.clean
. 有什么建议或建议吗?
更新
我注意到一个奇怪的现象。当我在 上执行bin/my_app upgrade 0.10.7
时RELEASE_ROOT_DIR
,我收到此错误消息(注意双引号和它们之间的逗号):