【发布时间】:2019-05-09 18:16:33
【问题描述】:
我想在生产环境中使用 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 是如何工作的),我会如果我没有,而不是依赖另一个依赖项。另外,如果您使用酿酒厂,您还必须使用定制的 docker 映像来运行代码,这是我尽量避免的。
这样的事情可能吗? 如果是这样,有人知道 DIY 解决方案吗?
【问题讨论】:
标签: docker erlang elixir phoenix-framework