【问题标题】:How to deploy elixir app from Windows dev machine to Ubuntu server如何将 elixir 应用程序从 Windows 开发机器部署到 Ubuntu 服务器
【发布时间】:2023-03-18 03:42:01
【问题描述】:

我在 Windows 机器上开发了一个应用程序,我需要将它部署到 Ubuntu 18.04 服务器。我想使用的工具是 distillery 和 edeliver。

那么我可以在我的 Windows 机器上用 distillery 构建 release 还是应该在具有相同 的机器上构建它>CPU 架构和 Ubuntu 18.04 作为未来的生产机器,例如创建 Virtualbox Ubuntu guest 机器,在 Windows 主机和 Windows 主机之间共享我的应用程序的项目文件夹来宾机器并在 Ubuntu 来宾机器上构建版本?

如果有人在 Windows 上开发 elixir 应用,您能否分享一下您的部署过程步骤?

【问题讨论】:

    标签: deployment elixir phoenix-framework distillery edeliver


    【解决方案1】:

    通常,酿酒厂会打包运行应用所需的一切,并且取决于平台。我们在 docker 中使用与生产服务器架构精确匹配的映像进行构建,但也可以使用一些专用的构建服务器。

    但是,如果您的应用程序不使用任何依赖于二进制文件的奇怪库,我认为(但我不确定)您可能只需根据需要在服务器上设置运行时并移动已编译的 erlang 字节码即可在 Windows 上。但是你为什么要这样做呢?

    【讨论】:

    • 谢谢,Ivan,我在我的项目中使用了至少一个 c 库(comeonin bcrypt),我认为应该在 Ubuntu 机器上编译它才能正常工作。而且我不想在生产服务器上安装构建环境。
    • 那么 Docker 就是你的选择。你甚至不必在本地做,我认为 github 现在有用于在容器中构建的工具,或者 AWS CodeBuild 可以。
    • 抱歉 newbee 问题(我从未使用过 Docker)。在我的 Windows 机器上安装 Docker 没问题。下一步是什么?我想继续在 Windows 上开发应用程序,似乎 edeliver 命令在 Windows 上不起作用(根据github.com/edeliver/edeliver/issues/120 问题)
    • 是的,您将能够像往常一样进行开发,您只需从 docker 中运行所有与发布相关的例程并将结果从容器中提取出来。这相对简单,您只需要安装 Docker 并为您的项目创建一个 Dockerfile,在其中描述您将使用的镜像(dockerhub 上有很多社区镜像)以及该镜像中应该包含哪些本地文件(复制它在,或绑定为一个卷)。
    • 查看 Distillery 的这部分文档:hexdocs.pm/distillery/guides/building_in_docker.html
    【解决方案2】:

    我过去曾尝试帮助 @PaulSchoenfelder 部署基于 Windows 构建的 Elixir 应用程序。我不相信我在校外说我们从来没有在这方面取得过巨大的成功。我们可以让它工作,但它总是有一些粗糙的边缘。因此,我对您的回答是在您的 Ubuntu 目标上构建它(并针对它运行 Distillery)。


    编辑:我忘记了,如果您使用的是 Windows 10,那么 WSL 也可能是您的选择。

    【讨论】:

      【解决方案3】:

      一般来说,部署 Erlang 或 Elixir 的最佳方式是使用发布版。一个版本将包括 Erlang Runtime 以及你所有的配置、Beam 文件等。

      理论上,您可以交叉编译一个版本,但它可能比它的价值更麻烦。我通常只是通过 Vagrant 使用虚拟机

      我在这里有一个关于它的电子邮件课程https://elixirtraining.us7.list-manage.com/subscribe?u=150de5dbc56d446a48f7fc3fd&id=03791ac7a9

      【讨论】:

        猜你喜欢
        • 2020-01-05
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 2017-06-07
        • 2012-04-09
        • 2018-07-13
        • 2016-08-17
        相关资源
        最近更新 更多