问题标签 [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.
elixir - 尝试使用 edeliver 发布包但得到 deps/exrm/mix.exs: No such file or directory
我正在尝试使用edeliver
尝试将我的包部署到我的服务器,
一切都很好,然后我收到了这个错误
我跑了cat deps/exrm/mix.exs
,它确实存在。有关如何解决此问题的任何信息将非常感谢
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 是这样的:
在与这个问题斗争了一段时间之后,我意识到这里有无数的问题。
- 清理并没有真正起作用,这导致了 :AMQP not found 错误。通过 --skip-mix-clean 开关临时修复。
- 之后,edeliver 抱怨它无法决定是否应该使用 exrm 或 distillery。好的,我确实在伞项目根目录下混合了 release.init 。还将 .deliver 文件夹移至伞形项目的根目录,将 edeliver 和酿酒厂部门添加到根 mix.exs。(我不知道这是否正确)。经过混合发布测试,是的,酿酒厂构建在本地工作。
- 编译仍然无法在构建主机上工作:amqp 无法编译。为使用 amqp 的应用程序添加了 {:amqp_client, git: " https://github.com/dsrosario/amqp_client.git ", branch: "erlang_otp_19", override: true} 到 deps。那行得通,现在编译可以在具有 erlang 19 的构建主机上运行。
- 现在我得到:未能检测到生成的发布版本:/tmp/edeliver/abotti/builds/apps/abotti/rel/abotti/releases/ 我猜这意味着我的 RELEASE_DIR 与我在 .deliver 文件夹中的配置不正确。
好吧,在我完成了 edeliver wiki 所说的为一个伞式项目做的一切之后,总结一下,仍然存在清理和发布目录问题。我只能让 edeliver 使用 --skip-mix-clean 进行编译,并且我已经尝试了对 RELEASE_DIR 的许多调整,但我总是得到“未能检测到发布版本错误”。
任何帮助将非常感激。
elixir - Edeliver - 成功部署后无法访问端口 4000
我正在尝试使用edeliver部署一个简单的 phoenix 应用程序。昨天经过多次斗争,它奏效了。无论如何,今天我做了一些工作并尝试发布一个新版本:
如果我ps aux
在我的服务器上运行,我可以看到:
所以守护进程正在运行。如果我运行mix edeliver ping production
一切看起来也很好。
当我尝试使用prod.secret.exs中配置的正确端口访问我的服务器时
它不起作用:http: //46.101.2.126 :4000/
(昨天它工作得很好)。
我检查了端口 4000 上是否有东西在监听,但似乎没有:
git - `mix edeliver build release` 在 GitLab CI 运行器中运行时将过时的代码推送到构建服务器
我正在尝试将我的 GitLab CI 配置为自动构建我的 Elixir 应用程序并在每次master
分支成功时创建新版本。但是,每当涉及到部署时,它都会由于构建服务器上的旧 Git 存储库而失败。
我的.gitlab-ci.yml
配置:
CI 上的输出edeliver
(应用程序构建器是 Distillery):
当我在本地运行时,mix edeliver build
一切都很顺利,但我找不到通过 CI 运行时失败的原因。
erlang - 创建 erlang 集群的主机名
我正在尝试使用亚马逊 EC2 实例构建集群。
我是否必须将每个节点的主机名设置为文件中列出的.hosts.erlang
内容?
目前,.hosts.erlang
每个节点都有:
这是节点的私有DNS。
在vm.args
节点中,我有这样的东西:
我试图将主机名更改为完整的私有 dns,但它只更改为:
ip-10-0-5-10
我检查了集群,得到了空:
我使用 edliver 部署我的应用程序,如何调试为什么 erlang 没有创建预期的集群?
我在iex中试过:
编辑
我可以确认.hosts.erlang
可以阅读:
是否有我必须从中运行 erl 的特定文件夹?
在浏览器中,我可以看到应用程序正常运行,但我不确定集群..请帮助!
当我使用 AWS 时,这是我目前所在的安全组:
edeliver - 为什么要指定BUILD_HOST?
部署到多个节点的时候,是不是应该在每个节点上构建项目?为什么要BUILD_HOST
在配置文件中指定?
elixir - edeliver -- scp 无法找到构建
直到最近,“edeliver”一直运行良好,但现在它抛出了这个错误:
部署时出现此错误
以前,大约一个月或两周前,它运作良好。
灵丹妙药 1.4.0
而且,这里的“tput:终端属性:没有这样的设备或地址”是什么意思:
elixir - 如何让edeliver写启动的phoenix服务器的pid?
我将带有 edeliver 的 phoenix 应用程序部署到我的服务器。如果服务器突然重启,我希望我的 phoenix-app 能够自动恢复并受到监控。似乎 systemd 工具可以帮助我,但它需要将 phoenix pid文件存储在某处。
有没有办法让 edeliver 在部署后立即保存 phoenix pid文件?也许有比 systemd 更好的方法来在服务器重启后恢复和监控应用程序?
注意:我最感兴趣的是监控 pid。
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
会导致错误
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: