4

我一直在使用edeliver构建和部署 elixir 应用程序到生产环境。我现在已经将应用程序组织到一个伞形项目中,并且在配置 edeliver 来构建项目时遇到了困难。

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

最终,它在需要找到要下载的 tar 时使该过程失败,并抱怨Please set 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 [...]

 *
4

1 回答 1

1

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

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

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

于 2016-04-14T17:02:59.810 回答