部署 – Elixir:使用edeliver构建和部署伞形应用程序

我一直在使用
edeliver构建和部署elixir应用程序到生产中.我现在已经将应用程序组织成一个伞形项目,并且很难配置edeliver来构建项目.

我最初的想法是,伞中的每个应用程序都需要自己的.deliver / config,我必须独立构建和部署每个应用程序,我很酷.当我在其中一个应用程序中运行mix edeliver build release时,它会启动构建过程.但是,它最终会为构建服务器上的每个应用程序创建一个构建.

最终,它在需要找到tar下载的地方失败了,抱怨请设置RELEASE_VERSION = x.每个应用程序在混合文件中都有自己的发布版本,这是之前为构建设置发布版本所需的全部内容.

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 [...]

 *

最佳答案 将RELEASE_DIR指向伞形应用程序的正确目录,为我修复此问题.在构建之后添加apps文件夹是必需的,因为应用程序已被移动到该文件夹​​中.我必须ssh进入服务器并在每次构建之前手动清除rel文件夹.我很确定这可以通过将其添加到before挂钩或正确配置GIT_CLEAN_PATHS来修复/自动化.我还从主应用程序文件夹启动伞构建和部署.

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

BUILD_AT = “/ my-app.com/build”

点赞