如何使用Erlang和Docker来运行Phoenix应用程序?

如何使用Erlang和Docker来运行Phoenix应用程序?,docker,erlang,elixir,phoenix-framework,Docker,Erlang,Elixir,Phoenix Framework,我想在生产环境中使用docker映像来运行Phoenix容器,但是,由于Elixir只是Erlang上的一层,因此在我的生产环境中运行Elixir可能会浪费空间 理想情况下,我可以将整个Phoenix应用程序编译到Erlang中,然后使用Erlang:alpine中的图像在生产中实际运行该应用程序。像这样的 FROM elixir:alpine as builder (install dependencies and copy files) RUN mix compile_app_to_erla

我想在生产环境中使用docker映像来运行Phoenix容器,但是,由于Elixir只是Erlang上的一层,因此在我的生产环境中运行Elixir可能会浪费空间

理想情况下,我可以将整个Phoenix应用程序编译到Erlang中,然后使用Erlang:alpine中的图像在生产中实际运行该应用程序。像这样的

FROM elixir:alpine as builder
(install dependencies and copy files)
RUN mix compile_app_to_erlang

FROM erlang:alpine
COPY --from=builder /path/to/compiled/erlang /some/other/path
CMD ["erlang", "run"]
注意:compile_app_to_erlang不是一个真正的命令,但我正在寻找类似的命令。另外,我不知道erlang是如何运行的,所以里面的所有代码都是完全虚构的

另外,据我所知,有一个名为distillery的项目可以做到这一点,但这似乎是一种不应该太复杂的事情(如果我知道erlang是如何工作的),如果我没有太多依赖,我宁愿不依赖另一个依赖。另外,如果您使用distillery,您还必须使用定制的docker图像来运行代码,这是我试图避免的

这样的事情可能吗? 如果是这样,有人知道DIY解决方案吗?

我建议您使用它来构建二进制文件

然后只需运行一个
alpine
容器,将
蒸馏厂版本装载到其中,运行二进制文件。是的,你可以使用主管来运行它

您可以使用蒸馏厂的
remote_console
链接到此二进制文件的控制台