问题标签 [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 投票
2 回答
272 浏览

elixir - 尝试使用 edeliver 发布包但得到 deps/exrm/mix.exs: No such file or directory

我正在尝试使用edeliver尝试将我的包部署到我的服务器,

一切都很好,然后我收到了这个错误

我跑了cat deps/exrm/mix.exs,它确实存在。有关如何解决此问题的任何信息将非常感谢

0 投票
0 回答
370 浏览

elixir - Elixir 依赖关系:使用 edeliver(+ 酿酒厂)构建时,在伞式项目中找不到 AMQP

我有一个伞形项目,目前只有一个简单的应用程序依赖于amqp。在本地一切正常,但是当我尝试使用“mix edeliver build release”构建它时,当它试图编译我的代码时,我得到“:AMQP not found”。

当我去构建主机并手动编译应用程序时,它也可以正常工作。我还可以从 edeliver 调试日志中看到,获取依赖项工作得很好。

我怀疑 edeliver 失败了,因为这是一个伞式项目。接下来要在没有雨伞的情况下尝试这个,但我当然想让它与雨伞项目一起工作。

错误如下所示:

编译 2 个文件 (.ex)

== 文件 lib/heartbeat_consumer.ex 上的编译错误 == ** (CompileError) lib/heartbeat_consumer.ex:3: 模块 AMQP 未加载且无法找到 (elixir) 扩展宏:Kernel.use/1 lib/heartbeat_consumer .ex:3: HeartBeatConsumer (module) (elixir) lib/kernel/parallel_compiler.ex:116:匿名 fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

  • 错误 '\n远程命令失败:

    builder@buildhost.net

该命令的输出如上所示,在该主机上执行的命令打印在下面以用于调试目的:

退出状态为 1 失败:\n [ -f ~/.profile ] && source ~/.profile set -e cd /tmp/edeliver/myapp/builds if [ "mix" = "rebar" ]; 然后 echo "使用 rebar 编译文件" [[ "" != "true" ]] && ./rebar clean skip_deps=true || : ./rebar 编译 elif [ "mix" = "mix" ] && [ "mix" = "mix" ]; 然后回显“检查是否必须为混合版本 1.3.0 编译 deps”# 参见https://github.com/boldpoker/edeliver/issues/94 如果混合 --version | grep '\''混合 1.3.0'\'' >/dev/null 2>&1 ; 然后 echo "Compiling deps because mix version 1.3.0 is used" APP="abotti_server" MIX_ENV="prod" mix deps.compile fi if [[ "" = "true" ]]; 然后 APP="abotti_server" MIX_ENV="prod" AUTO_VERSION="" SKIP_RELUP_MODIFICATIONS="" RELUP_MODIFICATION_MODULE="" 混合编译否则 APP="abotti_server" MIX_ENV="prod" AUTO_VERSION="" SKIP_RELUP_MODIFICATIONS="" RELUP_MODIFICATION_MODULE="" 混合做干净,编译 fi elif [ "mix" = "mix" ]; 然后 echo "使用 mix 编译文件" if [[ "

我的应用程序 mix.exs 是这样的:

在与这个问题斗争了一段时间之后,我意识到这里有无数的问题。

  1. 清理并没有真正起作用,这导致了 :AMQP not found 错误。通过 --skip-mix-clean 开关临时修复。
  2. 之后,edeliver 抱怨它无法决定是否应该使用 exrm 或 distillery。好的,我确实在伞项目根目录下混合了 release.init 。还将 .deliver 文件夹移至伞形项目的根目录,将 edeliver 和酿酒厂部门添加到根 mix.exs。(我不知道这是否正确)。经过混合发布测试,是的,酿酒厂构建在本地工作。
  3. 编译仍然无法在构建主机上工作:amqp 无法编译。为使用 amqp 的应用程序添加了 {:amqp_client, git: " https://github.com/dsrosario/amqp_client.git ", branch: "erlang_otp_19", override: true} 到 deps。那行得通,现在编译可以在具有 erlang 19 的构建主机上运行。
  4. 现在我得到:未能检测到生成的发布版本:/tmp/edeliver/abotti/builds/apps/abotti/rel/abotti/releases/ 我猜这意味着我的 RELEASE_DIR 与我在 .deliver 文件夹中的配置不正确。

好吧,在我完成了 edeliver wiki 所说的为一个伞式项目做的一切之后,总结一下仍然存在清理和发布目录问题。我只能让 edeliver 使用 --skip-mix-clean 进行编译,并且我已经尝试了对 RELEASE_DIR 的许多调整,但我总是得到“未能检测到发布版本错误”。

任何帮助将非常感激。

0 投票
1 回答
146 浏览

elixir - Edeliver - 成功部署后无法访问端口 4000

我正在尝试使用edeliver部署一个简单的 phoenix 应用程序。昨天经过多次斗争,它奏效了。无论如何,今天我做了一些工作并尝试发布一个新版本:

如果我ps aux在我的服务器上运行,我可以看到:

所以守护进程正在运行。如果我运行mix edeliver ping production一切看起来也很好。

当我尝试使用prod.secret.exs中配置的正确端口访问我的服务器时

它不起作用:http: //46.101.2.126 :4000/

(昨天它工作得很好)。

我检查了端口 4000 上是否有东西在监听,但似乎没有:

0 投票
2 回答
434 浏览

git - `mix edeliver build release` 在 GitLab CI 运行器中运行时将过时的代码推送到构建服务器

我正在尝试将我的 GitLab CI 配置为自动构建我的 Elixir 应用程序并在每次master分支成功时创建新版本。但是,每当涉及到部署时,它都会由于构建服务器上的旧 Git 存储库而失败。

我的.gitlab-ci.yml配置:

CI 上的输出edeliver(应用程序构建器是 Distillery):

当我在本地运行时,mix edeliver build一切都很顺利,但我找不到通过 CI 运行时失败的原因。

0 投票
1 回答
356 浏览

erlang - 创建 erlang 集群的主机名

我正在尝试使用亚马逊 EC2 实例构建集群。

我是否必须将每个节点的主机名设置为文件中列出的.hosts.erlang内容?

目前,.hosts.erlang每个节点都有:

这是节点的私有DNS。

vm.args节点中,我有这样的东西:

我试图将主机名更改为完整的私有 dns,但它只更改为:

ip-10-0-5-10

我检查了集群,得到了空:

我使用 edliver 部署我的应用程序,如何调试为什么 erlang 没有创建预期的集群?

我在iex中试过:

编辑

我可以确认.hosts.erlang可以阅读:

是否有我必须从中运行 erl 的特定文件夹?

在浏览器中,我可以看到应用程序正常运行,但我不确定集群..请帮助!

当我使用 AWS 时,这是我目前所在的安全组:

在此处输入图像描述

0 投票
1 回答
47 浏览

edeliver - 为什么要指定BUILD_HOST?

部署到多个节点的时候,是不是应该在每个节点上构建项目?为什么要BUILD_HOST在配置文件中指定?

0 投票
1 回答
160 浏览

elixir - edeliver -- scp 无法找到构建

直到最近,“edeliver”一直运行良好,但现在它抛出了这个错误:

部署时出现此错误

以前,大约一个月或两周前,它运作良好。

灵丹妙药 1.4.0

而且,这里的“tput:终端属性:没有这样的设备或地址”是什么意思:

0 投票
1 回答
167 浏览

elixir - 如何让edeliver写启动的phoenix服务器的pid?

我将带有 edeliver 的 phoenix 应用程序部署到我的服务器。如果服务器突然重启,我希望我的 phoenix-app 能够自动恢复并受到监控。似乎 systemd 工具可以帮助我,但它需要将 phoenix pid文件存储在某处。

有没有办法让 edeliver 在部署后立即保存 phoenix pid文件?也许有比 systemd 更好的方法来在服务器重启后恢复和监控应用程序?

注意:我最感兴趣的是监控 pid。

0 投票
3 回答
779 浏览

deployment - 使用 edeliver 和 distillery 构建升级版本

版本:(构建和生产系统都相同)

灵药:1.4.0

操作系统:Ubuntu 14.04 LTS

酒厂配置:

交付配置:

我的初始版本成功mix edeliver update production --branch=development --start-deploy并且应用程序运行良好。当我尝试热代码重新加载时,

mix edeliver build upgrade --branch=development

它因命令而失败

build command requires --from= or --with argument.

当有或我错过任何配置时,不edeliver应该照顾这个吗?AUTO_VERSION

此外,执行命令mix edeliver upgrade production --branch=development --verbose会导致错误

0 投票
1 回答
435 浏览

jenkins - Edeliver: tput: 没有 $TERM 的值并且没有指定 -T

我正在尝试在 Jenkins 机器中进行自动部署,并将其交付到我们的生产中。我的构建机器似乎有问题。

mix edeliver build release --verbose --branch=70818f1f707545aaec17e0ca3daa035e7eea4746 tput:没有 $TERM 的值,也没有指定 -T tput:没有 $TERM 的值,也没有指定 -T tput:没有 $TERM 的值,也没有指定 -T tput: $TERM 无值且未指定 -T tput:$TERM 无值且未指定 -T tput:$TERM 无值且未指定 -T tput:$TERM 无值且未指定 -T tput:无值$TERM 且未指定 -T tput:$TERM 无值且未指定 -T tput:$TERM 无值且未指定 -T tput:$TERM 无值且未指定 -T tput:$ 无值TERM 并且没有指定 -T tput:没有 $TERM 的值并且没有指定 -T tput:没有 $TERM 的值并且没有指定 -T tput:没有 $TERM 的值并且没有指定 -T tput:没有 $TERM 的值并且未指定

在BUILD主机上构建集成应用程序的发布

-----> 授权主机 -----> 确保主机准备好接受 git 推送

远程命令失败:

ubuntu@ec2-54-93-168-21.eu-central-1.compute.amazonaws.com

该命令的输出如上所示,在该主机上执行的命令打印在下面以用于调试目的:

失败,退出状态为 255: