@mukola33

Как все-таки задеплоить Elixir/Phoenix приложение на VPS?

Что я только ни делал, чтобы задеплоить мое Elixir/Phoenix приложение -- не получается вообще. То одно, то другое. Всегда какие-то ошибки вылазят, например, в npm, приходится что-то отключать, что-то удалять. И это уже не в первый раз и не только с npm. Но, даже нормального руководства нигде нет. Во-первых, они быстро устаревают, во-вторых, они неподробные, некоторые моменты в них опущены. И еще, они все разные, совершенно и везде используются разные инструменты, не поймешь, какие из них рекомендуемые, какие нет.

У меня только один раз получилось задеплоить, на хероку, но, там действительно несколько комманд, там негде ошибиться. А мне надо на своей сервер.

Как вообще деплоить его надо, мне нужно elixir устанавливать на сервер? Обязательно? Или можно локально его скомпилировать и на сервер залить то, что получилось? Или нужно на сервере компилировать? Я так понял, что это 2 разных подхода. Как лучше?

Подскажите, как это все-таки сделать.
  • Вопрос задан
  • 580 просмотров
Пригласить эксперта
Ответы на вопрос 1
buurz
@buurz
Буквально только что задеплоил приложение, пришлось немного помучаться, но ничего экстраординарного в итоге.

Возможно это не совсем верный вариант, а может совсем не верный, но с этим позже разберусь.

Этапы:
- поставил на vps erlang и elixir;
wget https://packages.erlang-solutions.com/erlang-solut...
dpkg -i erlang-solutions_1.0_all.deb
apt-get update
apt-get install esl-erlang
apt-get install esl-erlang
apt-get install elixir

- добавил в проекте конфиг для продакшен, config/prod.ex, не забываем про prod.secret.ex;
blog.plataformatec.com.br/2016/05/how-to-config-en...

- также добавил модуль для миграций blog.plataformatec.com.br/2016/04/running-migratio...

Делал релиз на самом vps, так как у самого мак, а на vps дебиан, возникали ошибки с запуском из-за проблем с cross-compile.

Релиз готовил так:
- git clone ..
- mix deps.get
- npm install -g brunch
- brunch build --production && MIX_ENV=prod mix phoenix.digest
- MIX_ENV=prod mix compile
- MIX_ENV=prod mix release
- rel/elixirjob/bin/elixirjob console ( для проверки )
- rel/elixirjob/bin/elixirjob command Elixirjob.Release.Tasks migrate

В итоге идем на vps_ip:PORT видим работающее приложение.

Нашел еще такой вариант, но пока не пробовал
blog.plataformatec.com.br/2016/06/deploying-elixir...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы