Size: a a a

Эликсир и Вунш

2019 December 07

G

Georgy in Эликсир и Вунш
здрасьте, есть шо по гайдам для вкатывальщиков в эликсир?
источник
2019 December 08

D

DooDLeZz* in Эликсир и Вунш
Всем привет народ. Некоторое время назад, я выкатывал сюда вопрос "Как выгрузить Эликсир проект на продакшн?", и получил крайне неоднозначные ответы (от выгрузки файлов проекта на прод, и заканчивая использованием сторонних библиотек). Это сообщение для тех, кому этот вопрос все еще кажется актуальным.
1. Для корректной работы нужно чтобы проект был скомпилирован в той же среде, на какой он будет запущен (виртуализация в помощь);
2. Вызов команды MIX_ENV=prod mix release создаст каталог ./_build/prod, который и будет являться целевым;
3. Полученный на шаге №2 каталог и необходимо выгружать на продакшн сервер. Информация о том как запустить полученное приложение должно появиться в консоли после выполнения шага №2. Для приложения app, например, это будет _build/prod/rel/app/bin/app start (под Windows, разумеется, нужно запускать _build/prod/rel/app/bin/app.bat start).

Если все прошло без проблем, приложение будет запущено.
источник

МК

Максим Кузьмин in Эликсир и Вунш
Ну, мы в общем и целом примерно тоже самое и говорили, вопрос был стоит ли возня с докером свеч, или можно собрать прям на проде, как делают примерно все скриптовые языки и у них от этого не отваливается жопа)
источник

AD

Anastasiya Dyachenko in Эликсир и Вунш
Georgy
здрасьте, есть шо по гайдам для вкатывальщиков в эликсир?
источник

V

V in Эликсир и Вунш
DooDLeZz*
Всем привет народ. Некоторое время назад, я выкатывал сюда вопрос "Как выгрузить Эликсир проект на продакшн?", и получил крайне неоднозначные ответы (от выгрузки файлов проекта на прод, и заканчивая использованием сторонних библиотек). Это сообщение для тех, кому этот вопрос все еще кажется актуальным.
1. Для корректной работы нужно чтобы проект был скомпилирован в той же среде, на какой он будет запущен (виртуализация в помощь);
2. Вызов команды MIX_ENV=prod mix release создаст каталог ./_build/prod, который и будет являться целевым;
3. Полученный на шаге №2 каталог и необходимо выгружать на продакшн сервер. Информация о том как запустить полученное приложение должно появиться в консоли после выполнения шага №2. Для приложения app, например, это будет _build/prod/rel/app/bin/app start (под Windows, разумеется, нужно запускать _build/prod/rel/app/bin/app.bat start).

Если все прошло без проблем, приложение будет запущено.
1. Среда - это железо, ось, дистрибутив/пакеты или всё вместе?
источник

D

DooDLeZz* in Эликсир и Вунш
Ось. В моем случае я тестил на совершенно разных машинах
источник

V

V in Эликсир и Вунш
DooDLeZz*
Всем привет народ. Некоторое время назад, я выкатывал сюда вопрос "Как выгрузить Эликсир проект на продакшн?", и получил крайне неоднозначные ответы (от выгрузки файлов проекта на прод, и заканчивая использованием сторонних библиотек). Это сообщение для тех, кому этот вопрос все еще кажется актуальным.
1. Для корректной работы нужно чтобы проект был скомпилирован в той же среде, на какой он будет запущен (виртуализация в помощь);
2. Вызов команды MIX_ENV=prod mix release создаст каталог ./_build/prod, который и будет являться целевым;
3. Полученный на шаге №2 каталог и необходимо выгружать на продакшн сервер. Информация о том как запустить полученное приложение должно появиться в консоли после выполнения шага №2. Для приложения app, например, это будет _build/prod/rel/app/bin/app start (под Windows, разумеется, нужно запускать _build/prod/rel/app/bin/app.bat start).

Если все прошло без проблем, приложение будет запущено.
3. Как запускать? Кроном? Systemd? Как сочетать с деплоем?
источник

V

V in Эликсир и Вунш
DooDLeZz*
Ось. В моем случае я тестил на совершенно разных машинах
Чем виртуализировал?
источник

D

DooDLeZz* in Эликсир и Вунш
V
Чем виртуализировал?
Vmware
источник

D

DooDLeZz* in Эликсир и Вунш
V
3. Как запускать? Кроном? Systemd? Как сочетать с деплоем?
Я запускал через screen. Но думаю можно и небольшой сервис написать
источник

V

V in Эликсир и Вунш
А вот это вот:
$ MIX_ENV=prod mix release
** (RuntimeError) environment variable DATABASE_URL is missing

DATABASE_URL - при билде релиза задаётся, а не при запуске на проде?
источник

D

DooDLeZz* in Эликсир и Вунш
Предполагаю что конфиги неполные
источник

VR

Vlad Romaniuk in Эликсир и Вунш
V
А вот это вот:
$ MIX_ENV=prod mix release
** (RuntimeError) environment variable DATABASE_URL is missing

DATABASE_URL - при билде релиза задаётся, а не при запуске на проде?
Посмотри эту серию гайдов

https://itnext.io/elixir-plus-kubernetes-part-1-80129eab14f0
источник

V

V in Эликсир и Вунш
DooDLeZz*
Предполагаю что конфиги неполные
Дефолтные конфиги феникса.
Ты как делал - при билде задавал  DATABASE_URL или при запуске в проде?
источник

D

DooDLeZz* in Эликсир и Вунш
У меня нефеникс проект
источник

D

DooDLeZz* in Эликсир и Вунш
Но, насколько я помню, конфиг для прода лежит рядом
источник

V

V in Эликсир и Вунш
Так как ты делаешь-то? При билде указываешь или при запуске в проде? Третий раз вопрос задаю.
источник

SK

Simon Khaskelberg in Эликсир и Вунш
V
Так как ты делаешь-то? При билде указываешь или при запуске в проде? Третий раз вопрос задаю.
Можно при билде, можно при запуске. Если хочешь чтобы конфиг читался в runtime нужно сделать пару шагов. Вот тут все описано https://hexdocs.pm/phoenix/releases.html#runtime-configuration
источник

AD

Artem Denezhny in Эликсир и Вунш
@DooDLeZz

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

если лично, то можно не заморачиваться и написать свой bash скрипт для деплоя на сервере, следить за git на сервере и дергать этот скрипт каждый раз, когда он будет меняться

в bash -е прописать все команды, которые выполняете ручками на сервере, также рекомендую продумать stage инстанс, для предворительной оценки результатов деплоя

...если же это дистрибьюция, то конечно docker смотрится очень привлекательно, но ведь можно использовать и другие решения,

например для согласования Environments есть
https://www.vagrantup.com/

но я бы всё-таки подумал об DevOps Way и воспользовался приложениями GitHub, там столько разных прикольных вещей которые просто работают из коробки и имеют free стартовые планы
источник

D

DooDLeZz* in Эликсир и Вунш
Artem Denezhny
@DooDLeZz

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

если лично, то можно не заморачиваться и написать свой bash скрипт для деплоя на сервере, следить за git на сервере и дергать этот скрипт каждый раз, когда он будет меняться

в bash -е прописать все команды, которые выполняете ручками на сервере, также рекомендую продумать stage инстанс, для предворительной оценки результатов деплоя

...если же это дистрибьюция, то конечно docker смотрится очень привлекательно, но ведь можно использовать и другие решения,

например для согласования Environments есть
https://www.vagrantup.com/

но я бы всё-таки подумал об DevOps Way и воспользовался приложениями GitHub, там столько разных прикольных вещей которые просто работают из коробки и имеют free стартовые планы
Согласен. Я лишь описал кратчайший путь к решению задачи "здесь и сейчас"
источник