radio-t/rt-bot

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

Closed this issue · 20 comments

  • Добавить на bot.radio-t.com API для этого дела - GET /deploy. С http auth.
  • Поменять загрузку всех внешнких ботов с одноразовой (во времq старта), на периодическую (дергать /list каждую минуту, и догружать/перегружать если появился/исчез бот)
  • Добавить вызов API для deplpy со стороны CI

GET /deploy

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

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

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

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

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

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

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

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

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

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

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

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

хмм, 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 его видит.

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

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

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

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

unix://var/run/docker.sock

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

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

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

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

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

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