Elixir: 使用edeliver构建和部署一个umbrella app

4
我一直在使用edeliver将Elixir应用程序部署到生产环境。现在,我已经将应用程序组织成一个Umbrella项目,并且正在配置edeliver以构建该项目时遇到了问题。
我的初步想法是,Umbrella中的每个应用程序都需要自己的.deliver/config文件,并且我必须独立地构建和部署Umbrella中的每个应用程序,这对我来说没问题。当我在其中一个应用程序中运行mix edeliver build release时,它开始构建过程。但是,它最终在构建服务器上为每个应用程序创建了一个构建。
最终,在需要找到tar文件进行下载的时候,它会失败,并提示Please set RELEASE_VERSION=x。每个应用程序在mix文件中都有自己的发布版本,这就是之前设置构建版本所需的全部内容。
ls: cannot access /data/web/staging.my-app.com/build/rel/my-app/releases/*/: No such file or directory
Failed to detect generated release version at
deploy@192.168.0.1:/data/web/staging.my-app.com/build/rel/my-app/releases/

Please set RELEASE_VERSION=x
Detected several releases:

 FAILED
 2:
 ssh
basename: illegal option -- o
usage: basename string [suffix]
   basename [-a] [-s suffix] string [...]

 ConnectTimeout=3
 deploy@192.168.0.1
 ls
basename: illegal option -- A
usage: basename string [suffix]
       basename [-a] [-s suffix] string [...]

 *

我也遇到了同样的问题。你找到解决方案了吗? - Col
1个回答

1
RELEASE_DIR指向正确的目录对于我的伞应用程序来说解决了这个问题。在build之后添加apps文件夹是必需的,因为应用程序已移动到该文件夹中。每次构建之前我都必须手动登录服务器并清除rel文件夹。我非常确定可以通过将其添加到before hook或正确配置GIT_CLEAN_PATHS来修复/自动化此问题。我还从主应用程序文件夹启动伞形构建和部署。

RELEASE_DIR="/my-app.com/build/apps/my_app/rel/my_app/"

BUILD_AT="/my-app.com/build"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接