问题标签 [edeliver]

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 回答
98 浏览

deployment - Edeliver 无法开始发布

在本地运行mix edeliver version production时失败并显示以下输出

错误很明显,因为可执行文件位于:~/my_app.io/my_app/_build/prod/rel/my_app/bin

我也无法运行任何start/stop/restartetc 命令

部署是成功的,因为当我 ssh 并运行它的启动命令时。

我想知道是否有人可以指出我缺少的一些配置参数的方向,因为本地命令效率更高。

0 投票
3 回答
3945 浏览

elixir - 在生产模式下在 Phoenix 中读取文件

我有 Phoenix 应用程序(我使用 --api 标志创建它),它有一些额外的数据来处理我存储在priv/data/filters.csv.

所以它在dev模式下工作正常,我可以像这样读取这个文件:File.stream!("priv/data/filters.csv")但是一旦使用mix edeliver update这个文件交付应用程序就无法再访问了。

我可以在 build 目录中看到这个文件夹,但是应用交付后没有这个文件夹priv。我不确定为什么它没有被复制到传递文件夹。

我做错了什么?我需要在交付过程后复制这些文件吗?在哪里可以存储我必须在 prod 模式下使用的文件?

0 投票
1 回答
273 浏览

azure - Edeliver 在随机 TCP 端口上启动 Phoenix/Elixir 应用程序

我们正在尝试将我们的 Phoenix Web 应用程序部署到 Linux VM(在我们的例子中是在 Azure 上),edeliver 我们已经使用并记录了步骤: https ://github.com/dwyl/learn- 将“基本”博客应用程序部署到 Azure microsoft-azure#part-2-deploying-your-applicationedeliver

当我们 使用它的实例上手动运行(“真正的”)应用程序时:httpsMIX_ENV=prod mix phoenix.server ://github.com/nelsonic/healthlocker运行良好!

当我们使用以下命令将应用程序部署并运行到 Azure 实例时:

我们收到一个肯定的确认消息:

但是,当我们按照checks-running-services-on-linux 的netstat -plnt建议运行时, 我们注意到正在随机TCP 端口上启动 Phoenix 应用程序:edeliver

在这种情况下,应用程序在 PORT 上运行38863,即使我们的prod.exs配置文件已将PORT硬编码为,4000 并且我们有一个环境变量可以按照说明4000在我们的.profile文件中设置它(以防万一)。

所以我的问题是:

为什么在随机edeliverTCP 端口上启动 Phoenix 应用程序...?

如何edeliverPORT 上启动应用程序4000

我们.deliver/config在 GitHub 上。

我们已尝试按照@dogbert 的说明 阅读日志:如何查看使用 Edeliver 部署的 Phoenix Web 应用程序中的生产日志?既没有也没有让我们变得更聪明...... :-(/home/{username}/{appname}/var/log erlang.log.1run_erl.log

任何帮助理解这一点将不胜感激!(请&谢谢!

注意:可悲的是,虽然这个 Q: Edeliver - 成功部署后无法访问端口 4000 听起来很相似,但该解决方案对我们不起作用(我们尝试过

0 投票
1 回答
560 浏览

deployment - 如何避免 Edeliver 部署错误:“vm.args:没有这样的文件或目录”?

语境

我们正在尝试使用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 应用程序

运行以下命令(构建升级):

即“从以前的 git 版本升级到当前版本”

到目前为止,一切都很好。“发布成功搭建!

交付-升级-构建-成功

错误:vm.args: No such file or directory

当我们尝试部署升级时:

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 ,遗憾的是没有明智的......

附加信息

环境

这个问题也被问到:https ://github.com/edeliver/edeliver/issues/234

0 投票
1 回答
234 浏览

elixir - 与酿酒厂一起交付:如何设置“开始”命令以使用 systemctl

我正在使用edeliverdistillery.

我还成功地创建了systemd.service从命令行启动、停止、重新启动等发布的文件。

但是该mix edeliver start production命令似乎systemd通过普通的旧好的bin/my_app startshell 命令绕过了发行版。我想要的是systemd始终使用,即使是热上传,因为它(不像upstart)确实提供了reload功能。

我找不到我该告诉谁来systemd[重新]开始发布。应该是delivery战略吗?还有什么?我知道这个问题不适合 SO,但我只是迷路了。

那么:我可以强制使用edeliver来启动发布吗?如果是,如何?distillerysystemd

0 投票
3 回答
2133 浏览

elixir - 混合任务“发布”未找到错误

我正在使用 edeliver 为我的 Elixir/Phoenix 应用程序设置一个 Ubuntu 16.04 服务器,当时 edeliver 失败并显示错误消息** (Mix) The task "release" could not be found以及退出代码 1。如果我去我的构建服务器,git pull 我的应用程序并运行MIX_ENV=prod mix releasemix release在获得依赖项之后运行, 我犯了同样的错误。

但是,相同的应用程序在本地运行没有任何问题。

我的 erlang 版本erts-9.0和 elixir 版本1.5.5都在服务器和我的本地计算机上。十六进制版本在0.16.1.

Phoenix 是使用以下命令安装的:mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez.

这是我的mix.exs文件。

我的 edeliver 配置文件.deliver/config如下:

0 投票
2 回答
2071 浏览

elixir - Edeliver/Distillery 因“bash: line 10: mix: command not found”错误而失败?

运行时出现此错误mix edeliver build release production --verbose

但是当我登录服务器时,Elixir(以及 Mix)似乎安装得很好。

它似乎工作正常。Edeliver 找不到我的 Elixir 安装有什么问题?我使用 asdf 版本管理器来安装 Elixir 和 Erlang。

0 投票
1 回答
275 浏览

elixir - 迁移时使用 edeliver 部署 phoenix 失败

当我运行时,mix edeliver migrate production我收到此错误:

我做了 remote_console 并Application.get_all_env(:example)检查了数据库详细信息,它们是正确的。我正在同一台服务器上部署另一个 phoenix 应用程序,并且数据库正常工作。

我尝试在两个应用程序上更改池大小,但没有帮助。

我想我可能做错了什么,但由于接线错误而无法查明。

0 投票
1 回答
812 浏览

elixir - 问题设置生产端口号 - (RuntimeError) 需要设置 PORT 环境变量

我正在使用 edeliver 在 aws 上进行部署。部署运行良好,但是当我尝试在控制台中使用 访问该站点时curl localhost:8888,出现connection refused错误。

如果我尝试使用 启动应用程序./rel/bin/app_name console,我会得到一个(RuntimeError) expected the PORT environment variable to be set. 然而我的config/prod.exs样子是这样的。

我在这里想念什么?如果我PORT=8888在手动启动之前设置 a 就可以了,但我宁愿用 edeliver 自动启动

0 投票
0 回答
206 浏览

mysql - 使用 edeliver 迁移数据库时出错

我一直使用 edeliver 来部署我的应用程序,但在我的新应用程序上,我遇到了一个奇怪的错误。

当我运行时mix edeliver migrate production,我收到以下响应:

但是当我键入mix edeliver restart production后跟迁移命令时,一切正常。为什么会这样?