问题标签 [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.

0 投票
1 回答
1313 浏览

elixir - 酒厂版本的配置

我浏览了https://hexdocs.pm/distillery/getting-started.html文档,但无法运行基本的 Phoenix 应用程序。这就是我所做的:

比我更新mix.exs文件以包含酿酒厂部分:

比我运行以下命令:

结果是这样的:

据我了解,我应该能够使用以下命令启动 Phoenix 应用程序

但是当我这样做时,我无法通过 URL 上的浏览​​器访问它http://localhost: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 投票
0 回答
1063 浏览

postgresql - Phoenix Elixir Distillery 未使用正确的数据库连接

我正在尝试使用 Distillery 构建 Phoenix 应用程序,但是当我尝试启动已编译的应用程序时,我不断收到关于无法完善数据库的错误消息。

现在上面的细节不是我在prod.ex

我的数据库网址在哪里DATABASE_URL=postgres://glitchr:password@db:5433/glitchr

这是为什么?我怎样才能调试我不正确的东西?

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

elixir - 从 elixir 应用程序的版本中进行 Ecto 迁移

我已经发布了我的 elixir 应用程序。
当应用程序启动时,它开始使用 DB 运行受监督的任务。

未迁移数据库时,任务保持错误,应用程序终止。

我阅读了http://blog.firstiwaslike.com/elixir-deployments-with-distillery-running-ecto-migrations/https://hexdocs.pm/distillery/running-migrations.html,并尝试实现以下迁移功能他们,但失败了,因为需要启动应用程序来加载应用程序的配置,这会使命令终止。

当我在Application.get_all_env(:my_app)没有启动我的应用程序的情况下运行时,它返回空列表[]。无论如何都可以在Ecto.Migrator.run(MyApp.Repo, path, :up, all: true)不启动应用程序的情况下运行?

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 回答
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 投票
1 回答
1201 浏览

elixir - 可以在 Phoenix 中禁用 CodeReloader 吗?

( CodeReloaderin devmode) 正在使用Mix.Config. 这在使用酒厂版本时失败,dev_mode因为mix在版本中不可用。

是否可以在 Phoenix 应用程序中完全禁用CodeReloader,这样我的应用程序就不会在dev_mode发布时无法启动?

0 投票
2 回答
86 浏览

elixir - VPS 上的 Elixir 应用程序无法在守护进程模式下从 ssh 启动

我已经用 Phoenix + Elixir 构建了一个应用程序,并将其部署到带有酒厂的服务器。一切正常,直到我尝试创建一些 bash 脚本来自动部署,仅供参考:我已经尝试过 edeliver,但它不符合我的需要。当我登录并运行时尝试在我的 VPS 上以守护程序模式运行应用程序时,我总是成功

但是,当我使用远程命令运行 ssh

它无法启动,shell 屏幕上没有输出。它只是行不通。

但是,如果我在前台模式下运行

它将成功启动应用程序并显示我一直nohup在前台模式下尝试使用的运行日志,但它仍然显示运行日志,而我需要运行另一个命令

运行 SSH 远程命令是否有任何必需的步骤,可能是一些环境设置?