
Evgeny
03.09.2016
17:17:46
который запускает контейнер с субд (тот еще моветон) и потом контейнер с докером

Alexander
03.09.2016
17:17:48
https://github.com/docker/compose/issues/374

Алексей
03.09.2016
17:18:06
там есть depend_on который не полагается на хелсчеки
но они это исправят

Google

Алексей
03.09.2016
17:19:24
и вариант с хелсчеами сильно правильее запуска через системд поскольку позволяет гарантировать порядок запуска

Alexander
03.09.2016
17:19:29
через systemd это всё организуется более красиво, чем через .sh

Evgeny
03.09.2016
17:19:34
нет

Алексей
03.09.2016
17:19:36
и запускать только когда действительно база стартовала
сейчас через системд нельзя сказать работает ли база или нет

Alexander
03.09.2016
17:21:03
в докере можно выделить ресурсы на пачку контейнеров сразу? нет

Алексей
03.09.2016
17:21:14
да можно

Alexander
03.09.2016
17:21:29
без systemd?

Алексей
03.09.2016
17:21:53
причем тут вообще системд то ?

Alexander
03.09.2016
17:22:27
ну, вы писали, что баг скрипты лучше systemd, я просто не знаю, как в таком случае сделать ограничение ресурсов сразу на группу контейнеров
Евгений писал
допустим, я хочу выделить 2 гигабайта оперативки на 3 контейнера, запуская через баш-скрипт я могу так сделать?
я не уверен до конца, но думаю, что без systemd тут не обойтись

Google

Алексей
03.09.2016
17:24:08
cgroup-parent
при чем тут систем д ? будт бы он вообще какое то отношение имеет к ограничению ресусов

Alexander
03.09.2016
17:26:31
ну, через него удобнее
а тут как? через cgmanager ?

Алексей
03.09.2016
17:26:40
сравнится по удобству пользования с compose файлом будет действительно сложно
как ты создашь группу пофиг. хоть файлами. хоть командами.

Alexander
03.09.2016
17:33:14
с точки зрения удобства деплоя, наверное, было бы удобнее это делать конфигами
и тут в целом, наверное, не так важно, что это будет - пачка .service/.target/.slice или compose

Алексей
03.09.2016
17:36:27
конфигурауция ямлом удобнее. сильно снижает погор входа в конфигурирование чего угодно

Alexander
03.09.2016
17:36:55
у меня есть ещё 1 вариант деплоя, он даже прикольнее

Алексей
03.09.2016
17:36:56
если бы sendmail конфигурировался ямлом до сих пор жил бы.

Alexander
03.09.2016
17:37:34
суть в том, что если меняются лишь версии - можно сделать 1 версию и тащить всегда только её
и 2 репозитория

Evgeny
03.09.2016
17:37:40
Но тогда бы пропал целый пласт исскуства

Alexander
03.09.2016
17:38:01
в 1 пушится все версии вообще, в другой только та, которую надо отправить на продакшен
таким образом, при обновлении не меняем эти конфиги на сервере
вы вообще какой вариант используете?
вы поняли, о чём я спросил? ?
вариант 1:
у вас на сервере есть конфиг (compose , .service или что угодно), где указаны версии образа контейнера, обновилась версия - вы меняете этот конфиг
вариант 2:
у вас на сервере есть конфиг, где указана всегда одна и та же версия образа контейнера, обновилась версия - вы меняете её в репозитории (например, копируете из другого репозитория)

Semyon
03.09.2016
17:46:53
1

Google

Алексей
03.09.2016
17:47:48
1.
ибо 2 глупо и не идемпотентно
в малом бизнесе не бывает версионирования. и все версии всегда работают. пожтому откатываться не нужно

Alexander
03.09.2016
17:49:33
2 вариант не запрещает версионировать
то есть у вас 2 репозитория, в одном разные версии, в другом лишь 1 версия, именно она и идёт на сервер
то есть когда нужна другая версия - вы берёте её из первого репозитория, меняете имя тег и записываете во второй, заменяя там то, что есть
при этом конфиги на сервере остаются такие же
ну а перекинуть из 1 репозитория во второй проще, чем закинуть конфиги на сервер

Evgeny
03.09.2016
17:52:15
у меня свой хаб в котором хранится спец контейнер в которм в момент деплоя билдится версия редеплоера привязанная к конкретному тегу который деплоится

Alexander
03.09.2016
18:00:21
мой вариант деплоя, по-простому, схематически:
у вас 2 репозитории,
в первой что-нибудь типа:
project/app:1.0
project/app:1.1
project/app:1.2
project/app:1.3
project/app:1.3.1
во второй просто 1 образ всегда
project/app:na-berlin
релиз-менеджер делает pull из первой репозитории, меняет тег на na-berlin и отправляет образ во вторую репозиторию
если что-то не пошло и надо откатиться - аналогично, берём другую версию из первой репозитории, меняем тег, отправляем во вторую, тег во второй всегда будет na-berlin , конфиги на сервере всегда будут стягивать с тегом na-berlin

Алексей
03.09.2016
18:01:22
как узнать какая версия была задеплоена вчера ?

Alexander
03.09.2016
18:01:38
у меня это в админке

Alexander
03.09.2016
18:02:10
ну, то есть через docker exec cat ... можно вытащить (если лень открывать браузер и админку)

yopp
03.09.2016
18:06:43
в билд всегда надо версию вкладывать

Alexander
03.09.2016
18:08:05
вот этот вариант позволяет меньше трогать production-серверы

Phil
03.09.2016
18:09:22
хрена вы нафлудили

Alexander
03.09.2016
18:09:23
например, можно не изучать ansible/salt stack))
мой вариант деплоя, по-простому, схематически:
у вас 2 репозитории,
в первой что-нибудь типа:
project/app:1.0
project/app:1.1
project/app:1.2
project/app:1.3
project/app:1.3.1
во второй просто 1 образ всегда
project/app:na-berlin
релиз-менеджер делает pull из первой репозитории, меняет тег на na-berlin и отправляет образ во вторую репозиторию
если что-то не пошло и надо откатиться - аналогично, берём другую версию из первой репозитории, меняем тег, отправляем во вторую, тег во второй всегда будет na-berlin , конфиги на сервере всегда будут стягивать с тегом na-berlin
уточню, что вторая репозитория тут просто для наглядности, это может быть та же самая, просто зарезервированный тег

Алексей
03.09.2016
18:21:22
latest например да ?

Google

Timur
03.09.2016
18:29:52

Alexander
03.09.2016
18:49:39
latest означает последнюю версию
может, production

ptchol
03.09.2016
20:37:01
latest плоховато, лучше версии биндить

Alexander
03.09.2016
20:42:57
latest (как слово) плохо тем, что когда захочется откатиться на предыдущую версию, она будет уже не latest
поэтому лучше production или как-то так

ptchol
03.09.2016
20:47:48
поэтому лучше версии
и не долбать себе мозг

Alexander
03.09.2016
20:49:08
ээ, ну, я написал выше, какую проблему это решает

Admin
ERROR: S client not available

Alexander
03.09.2016
20:49:17
с версиями надо обновлять конфиги на серверах
а тут можно просто те же самые конфиги юзать

ptchol
03.09.2016
20:49:40
не надо

Alexander
03.09.2016
20:49:49
а как деплоить?

ptchol
03.09.2016
20:50:13
а как щас ?

Alexander
03.09.2016
20:51:11
ну, допустим, сейчас есть nginx.service и там запускается Docker , где указана версия team/repository:project1-nginx-production
если вместо слова production указать версию, то нужно будет обновлять nginx.service на новый nginx.service
с новой версией

ptchol
03.09.2016
20:52:14
слабый какой то пойнт

Google

ptchol
03.09.2016
20:52:21
ты же ходишь на сервера перезапускать
когда ты идешь знаешь что новая версия
и знаешь какую хочешь выкатить
можно передат ьи она стартанет

Alexander
03.09.2016
20:52:46
было 1.1, будет 1.2 и вот ради этого надо будет закачивать новый project-nginx.service на каждый сервер, где этот проект запущен

ptchol
03.09.2016
20:52:59
а юниты это хвост по хорошему

Alexander
03.09.2016
20:53:18
ну кто-то через compose запускает - аналогично же
я про то и говорю, что выгодно иметь 1 версию для продакшена

ptchol
03.09.2016
20:53:38
да да да

Alexander
03.09.2016
20:53:41
а не гонять конфиги с циферками

ptchol
03.09.2016
20:53:48
но мне кажется в будущем с докером должен быть шедулер
и ты не паришься на тему юнитов
он сам смотрит чтобы все это дерьмо работало
но если говорить про реальность то и так и так одинаково по сложности помоему

Alexander
03.09.2016
20:55:39
ну вот этот вариант с production требует лишь пульнуть нужную версию, переименовать в production и пушнуть снова
это можно сделать с обычного рабочего ноута
а перекидывать конфиги - это уже доступ на сервер нужен

ptchol
03.09.2016
20:57:03
так а перезапускается то он сам как ?
ты же все равно доступаешься и рестартишь

Alexander
03.09.2016
20:57:45
можно через крон, например, поставить скрипт, которые проверяет раз в 5 минут, есть ли новые версии

ptchol
03.09.2016
20:57:54
ужс какой

Alexander
03.09.2016
20:58:04
если в репозитории новые версии - он рестартит .target

ptchol
03.09.2016
20:58:41
билды отдельно деплои отдельно