@proelixir

Страница 82 из 1045
Alexander
25.08.2016
14:21:19
1 команда и билд и выкатка и миграции

Dmitry ?
25.08.2016
14:21:31
Грустно как-то

Alexander
25.08.2016
14:21:56
да там вот вот пулл примут который посикс совместимые терминалы принимает

чтобы хуета с [[ не вылазила

Google
Евгений
25.08.2016
14:22:09
это вам не gem install capistrano

Alexander
25.08.2016
14:22:30
я раньше миной феникс деплоил, но без релизов

сейчас edeliver + destillery

edeliver - тупо набор баш скриптов, обернутых зачем-то в эликсир

типа моднее наверное

в итоге ошибки в нем ниочем

exit 128

вот и все что он может сказать

#!/usr/bin/env bash APP="m_d" AUTO_VERSION=git-revision+branch+commit-count-branch BUILD_HOST="IP_ADDRESS" # host where to build the release BUILD_USER="deploy" # local user at build host BUILD_AT="/home/deploy/repo/$APP/builds" # build directory on build host RELEASE_DIR="/home/deploy/repo/$APP/builds/rel/$APP" # RELEASE_VERSION=0.0.2 GIT_CLEAN_PATHS="_build rel priv/generated" # GIT_CLEAN_PATHS="build rel priv/static/generated" # SKIP_GIT_CLEAN="true" # SKIP_MIX_CLEAN="true" PRODUCTION_HOSTS="IP_ADDRESS" # deploy / production hosts separated by space PRODUCTION_USER="deploy" # local user at deploy hosts DELIVER_TO="/home/deploy/app/$APP" # deploy directory on production hosts START_DEPLOY=true RELEASE_STORE="${BUILD_USER}@${BUILD_HOST}:~/releases/" pre_erlang_clean_compile() { status "Preparing assets with: brunch build and phoenix.digest" __sync_remote " [ -f ~/.profile ] && source ~/.profile # load profile (optional) set -e cd '$BUILD_AT' mkdir -p priv/static npm install brunch build --production APP='$APP' MIX_ENV=prod $MIX_CMD phoenix.digest " }

как-то так

это позволит выкатывать

после первого билда в 3 команды и если апп начал бегать, то можно edeliver upgrade production --branch=master

тогда будет тебе хоткод релоад

Google
Alexander
25.08.2016
14:27:32
запуск миграций - отдельная тема

Dmitry ?
25.08.2016
14:28:44
Спасибо, попробую у себя сделать

Alexander
25.08.2016
14:28:54
вообще феникс не приспособлен к выкатакам в реальный мир, половина либ в hex.pm написаны так, что никогда не будут работать на продакшне

причем авторы об этом не узнают, т.к никто не тестит релизы

к примеру если в коде написать if Mix.env == “prod” и чегонибудь, то релиз на сервере не запустится

а erl_crashdump вообще ниочем

10 мегабайт скобок

Dmitry ?
25.08.2016
14:30:31
У тебя вот тут /home/deploy/repo/$APP/builds есть git repo?

Alexander
25.08.2016
14:30:50
наверное, я создавал только repo папку

оно там само сделает гит

Dmitry ?
25.08.2016
14:32:42
У меня почти такой конфиг, сравнил

Проблема с удаленной prod машиной

В общем была ошибка на prod машине FAILED with exit status 128: set -e if [ ! -d /tmp/erlang/***/builds ] then mkdir -p /tmp/erlang/***/builds cd /tmp/erlang/***/builds git init &> /dev/null git config receive.denyCurrentBranch ignore else cd /tmp/erlang/***/builds git config receive.denyCurrentBranch ignore fi

Сделал rm -r /tmp/erlang/***/builds

Ошибка пропала

В /tmp/erlang/***/builds ничего не было, но сама папка была

запуск миграций - отдельная тема
Можешь подробнее? Какие грабли есть, чтобы сразу знать?

Евгений
25.08.2016
14:50:34
WUUUUT O_O

Alexander
25.08.2016
14:50:48
граблей нет, т.к нет нормального флоу

я на костылях собрал хуком из дистилери через rpc вызов моего модуля, который прогонит миграции и напишет мне какие

Google
Dmitry ?
25.08.2016
14:52:58
У меня exrm сейчас

Alexander
25.08.2016
14:56:09
https://tjournal.ru/33365-pervii-v-mire-servis-dostavki-picci-bespilotnikami-zapustyat-v-novoi-zelandii

Dmitry ?
25.08.2016
14:56:19
Можно вроде флаг добавить --run-migrations при деплое

Alexander
25.08.2016
14:56:39
упс не туда запостил

Dmitry ?
25.08.2016
15:30:56
FAILED with exit status 1: [ -f ~/.profile ] && source ~/.profile set -e cd /tmp/erlang/***/builds git checkout Node

Что за файл Node?

Alexander
25.08.2016
15:31:27
имя твоей программы для еделивера

он их нодами называет

exit status 1 - хэппи дебагинг! ))

Dmitry ?
25.08.2016
15:31:53
Как этот файл тут должен появиться?

Ну падает на git checkout Node

Alexander
25.08.2016
15:32:20
твой проект изначально в гите?

Dmitry ?
25.08.2016
15:32:27
Да

Alexander
25.08.2016
15:32:48
git remote -v

в папке проекта

должен быть там твой deploy@имя_сервера

Dmitry ?
25.08.2016
15:33:27
Есть

Alexander
25.08.2016
15:34:59
deply@111.111.111.111 deply@111.111.111.111:/home/deploy/repo/m_d/builds (fetch) deply@111.111.111.111 deply@111.111.111.111:/home/deploy/repo/m_d/builds (push)

вот так?

Google
Alexander
25.08.2016
15:35:31
там путь конечно другой

но не суть

Dmitry ?
25.08.2016
15:35:38
Да

Alexander
25.08.2016
15:36:06
тогда значит на сервере что-то не так

или у твоего билд юзера прав нет

я кстати признаюсь честно, так и не смог завести все под нормальными пользователями

так что у меня билд из под рута

Admin
ERROR: S client not available

Alexander
25.08.2016
15:37:17
потом перекладывается релиз в хомяк к деплой юзеру

и тот его уже сам у себя выкачивает

оцени архитектуру edeliver - если хост один и тот же для билда и деплоя, то он сам в себя ssh сделает

иногда кажется, что mina или капистрано просто немного заточенные под билд релизов будут намного лучше справлятся

вернее не иногда, а каждый день об этом думаю

Dmitry ?
25.08.2016
15:39:49
Да я вот как раз сейчас сам в себя деплою :))

По ssh

Alexander
25.08.2016
15:40:01
=)))

Dmitry ?
25.08.2016
15:40:23
Есть другие варианты кроме edeliver?

Для ansible видел что-то

Alexander
25.08.2016
15:40:41
был relisa хороший вариант

но его бросили

Google
Alexander
25.08.2016
15:41:01
к сожалению ансибл хуже еделивера

так то деплоить можно хоть бат скриптами из под винды

но чем дальше в лес тем менее странным кажется edeliver

он конечно говно

но когда дело дойдет до переезда с exrm на дистилери и conform для конфигов, то еделивер уже не так плох

не говоря о том, что он развивается довольно шустро

говорят будут хоткод откаты

сейчас все происходит руками, хотя я для удобства и сделал автоверсии по инкрименту

типа выкатил 180, значит могу откатить на 179

Dmitry ?
25.08.2016
16:37:22
А умеет edeliver сам удалять за собой старые релизы?

@noma4i вроде бы всё получилось, отрабатывает, спасибо

Dmitry
25.08.2016
20:23:56
Ребят, почему экто суёт в insert запрос id, если автогенерэйт

Блин, тут есть insert_or_update и это решает проблему(

Alexander
25.08.2016
23:34:10
Я свой форк пилю

Утро чатик

У кого какие боли с фениксом/тулзами, пишите, решим )

Taras ?
25.08.2016
23:43:06
добро утро) гризу кактус сам ? если не получится - спать пойду, потом утром еще погризу, и уж потом - спрашивать помощи) так ничего не научусь если самому не погризть кактус)

Alexander
26.08.2016
00:57:54
и правильно )

Страница 82 из 1045