radio-t / rt-bot

Мета-репо для движения "создай своего бота"
129 stars 46 forks source link

Автоматический деплоймент #130

Closed umputun closed 7 years ago

umputun commented 7 years ago
selevit commented 7 years ago

GET /deploy

Наверно все-таки POST кошернее.

selevit commented 7 years ago

Также, вместе с этим изменением желательно сделать ветку develop и деплоить ее в тестовый чат. Или сейчас деплой идет сразу в основной чат?

umputun commented 7 years ago

для этого тебе надо строить image с тэгами. :latest для мастера, :develop для девелоп

selevit commented 7 years ago

Это не проблема. Только тебе нужно два сервера :)

selevit commented 7 years ago

Я как-то об этом не подумал сначала. Наверно пока лишнее.

umputun commented 7 years ago

добавил сервис на https://bot.radio-t.com:1443/deploy

его пришлось делать отдельным и независимым от того, что он деплоит и он запускается через docker-compose-deploy.yml

можешь попробовать добавить это дело в CI. Только имей ввиду - он не даст делать несколько деплоев одновременно. Пока бежит один запрос, друой будет падать на timeout

selevit commented 7 years ago

Как я понимаю, запрос будет висеть, пока деплой не кончится?

umputun commented 7 years ago

да. если это долго делать то трэвис упадет на timeout

selevit commented 7 years ago

Пока можно ограничить лимит одновременных сборок в мастере (на уровне travis).

umputun commented 7 years ago

я добавил DEPLOY_USER и DEPLOY_PASSWD в travis

umputun commented 7 years ago

хмм, wtf?

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

это оно так на /usr/bin/docker images --no-trunc | grep none | awk "{print \$3}" | xargs /usr/bin/docker rmi При этом там есть DOCKER_HOST и compose его видит.

Если есть идеи - дайте знать.

selevit commented 7 years ago

Так ты ж его в докере запускаешь? Надо пробросить /var/run/docker.sock как volume.

selevit commented 7 years ago

Хм, оно ж вроде и есть у тебя.

umputun commented 7 years ago

конечно есть, compose без этого бы ругался тоже.

selevit commented 7 years ago

unix://var/run/docker.sock

Может быть unix:///var/run/docker.sock? (три слеша, два для протокола, другой для пути).

umputun commented 7 years ago

хмм, а зачем? пусть ждет своего часа. или вызывай с timeout своим курлом или чем оно там дергается

umputun commented 7 years ago

и таки, да unix:///var/run/docker.sock, thx

selevit commented 7 years ago

Да, про 503 я уже передумал. Ну и да, когда курлу говоришь перенаправлять поток, то он в stderr выводит статистику по выполнению запроса (изменяется время, количество переданных байт). Поэтому билд будет выполняться и не убьется трэвисом.

selevit commented 7 years ago

Значит композу пофиг на ENV DOCKER_HOST, если он не ругался.

umputun commented 7 years ago

маловероятно. Скорее всего у него хватает ума на default в такой ситуавии