Как я могу использовать Erlang с Docker для запуска приложения Phoenix? - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу использовать образ докера в рабочей среде для запуска контейнера 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, так что весь код там полностью составлен.

Кроме того, насколько я знаю, есть проект, который называется винокурня, который делает это, но похоже,тип вещей, которые не должны быть слишком сложными (если бы я знал, как работает эрланг), и я бы предпочел не полагаться на другую зависимость, если у меня ее тоже нет.Кроме того, похоже, что если вы используете ликеро-водочный завод, вам также придется использовать специально созданные образы докеров для запуска кода, чего я стараюсь избегать.

Возможно ли что-то подобное?Если так, кто-нибудь знает решение DIY?

1 Ответ

0 голосов
/ 08 декабря 2018

Я предлагаю вам использовать ликеро-водочный завод для создания двоичного файла.

Затем просто запустите контейнер alpine, установите в него distillery release, запустите двоичный файл.Да, вы можете даже использовать supervisor для его запуска.

Вы можете использовать remote_console ликеро-водочного завода для связи с консолью этого двоичного файла.

...