@docker_ru
Docker — русскоговорящее сообщество

Обсуждаем вопросы, посвященные Docker🐳, Docker Swarm и всей экосистеме. Обмениваем идеями, новостями и решаем пробемы. Вам могут быть полезны: @coreos_ru, @kubernetes_ru, @devops_ru, @rkt_ru Рекомендуем сразу отключить уведомления для удобства

2608 members

Архив канала @docker_ru 26 сентября 2016 г.

07:49:27 ДП
User 252544238
всем привет, подскажите пожалуйста по поводу контейнера от майкрософт - windowsservercore. Хочу его глянуть но не могу его скачать (бесконечное ожидание по 10 секунд в docker pull)... Как его сливать? Или надо быть на винде? Я сам на макоси
07:53:47 ДП
User 54466621
на макоси виндовый контейнер не заработает
07:54:01 ДП
User 54466621
это не виртуализация
07:59:55 ДП
User 980590
а тебе зачем такой контейнер?
07:59:59 ДП
User 980590
для .net core&
08:01:51 ДП
User 980590
Windows Containers images use the microsoft/windowsservercore and microsoft/nanoserver base OS images from Windows Server 2016 Technical Preview 5
08:02:45 ДП
User 980590
я для .net core  собираю на базе microsoft/dotnet:latest
09:39:37 ДП
User 252544238
User 980590
а тебе зачем такой контейнер?
да я думал заменить им установленную винду на Parallels, и собирать проект в том контейнере... Чтобы не запускать виртуалку каждый раз
09:40:53 ДП
11:17:29 ДП
User 141089312
а можно как-то из docker registry запросить последний образ по дате?
11:21:40 ДП
User 141975931
Судя по https://docs.docker.com/registry/spec/api/ . Registry дату не хранит.
docs.docker.com/registry/spec/api
Specification for the Registry API.
11:24:03 ДП
User 141089312
ок, задам самый первый вопрос ))))
мне нужна версионность образов в регистри - как ее сделать?
11:24:36 ДП
User 141975931
Тэгай
11:24:41 ДП
User 141975931
По номерам сборок например
11:24:48 ДП
User 141975931
по версиям
11:24:50 ДП
User 141975931
как хочешь
11:25:03 ДП
User 141975931
ты можешь на один образ вешать сколько хочешь тэгов
11:25:10 ДП
User 141089312
ок, я тагаю как бла-бла:memcache-2016092312
11:25:21 ДП
User 141089312
как мне потом забрать последний образ?
11:25:30 ДП
User 71516652
1. "последний" лучше не забирать
11:25:34 ДП
User 141975931
тэгай его еще и как бла-бла:latest
11:25:39 ДП
User 71516652
2. тегай еще и как :latest
11:25:46 ДП
User 141089312
как передвинуть этот latest?
11:25:57 ДП
User 141975931
Затэгать что нибудь другое как latest
11:25:58 ДП
User 71516652
просто еще раз пуш его же сделать
11:26:18 ДП
User 141089312
т.е. latest просто затирается на предыдущем?
11:26:24 ДП
11:26:33 ДП
User 141975931
как и любой другой тэг
11:26:33 ДП
User 141089312
ок, сенькс, попробую
11:27:15 ДП
User 141975931
я согласен с предыдущим оратором, latest лучше не забирать
11:27:37 ДП
User 141975931
Если используешь какие нибудь CI средства, лучше тегай номерами сборок например или версиями и на прод выводи таким образом.
11:29:48 ДП
User 141089312
у меня в одной репе 13 образов и мне не надо при каждом тегировании собирать все 13 образов. Один-два максимум
11:31:07 ДП
User 141975931
У тебя 13 образов из одного гит проекта?
11:31:20 ДП
11:31:29 ДП
User 141975931
Может ты делаешь что-то неправильно?
11:31:57 ДП
User 71516652
да даже если и так, то как это связано с использованием или не использованием :latest
11:31:59 ДП
User 141089312
каждый сервис в отдельном контейнере, или концепция докера изменилась с последнего моего прочтения руководство по онному?
11:32:22 ДП
User 141975931
Но судя по тому что ты написал у тебя 13 сервисов в одном гите. Зачем?
11:32:34 ДП
User 141089312
а как?
11:32:42 ДП
User 71516652
да пофиг, используется то :latest не при сборке, а при запуске
11:32:52 ДП
User 71516652
и вот там его использовать и не стоит
11:32:58 ДП
User 141975931
Если у тебя микросервисная архитектура, логичнее каждый микросервис вести отдельно
11:33:24 ДП
User 141089312
нет, не микросервисная - микросервисы вообще нарушают концепцию докера
11:33:25 ДП
User 141975931
Andrew почему бы и нет?
11:33:48 ДП
User 71516652
"концепция докера", хехе
11:34:04 ДП
User 141089312
User 71516652
"концепция докера", хехе
ну да, я тоже уже давно не понимаю - зачем это всё
11:34:10 ДП
User 141089312
заказчик просто хочет
11:34:25 ДП
User 71516652
User 141975931
Andrew почему бы и нет?
потому что все версии запущенные версии должны быть всегда известны, а не зависеть от времени года
11:34:43 ДП
User 141975931
Да даже если не микросервисная держать софт который разбивается на 13 отдельных контейнеров в одном гите неудобно
11:35:05 ДП
User 141975931
Это порождает целый класс проблем связанных с непрерывной интеграцией
11:35:58 ДП
User 141089312
но держать 13 реп под это, извините меня, дерьмо - тоже как-то не очень
11:36:12 ДП
User 141975931
Andrew, никто не говорить их выкатывать на прод как latest. А тегать во время сборки, почему бы и нет.
11:36:41 ДП
User 141089312
User 141975931
Andrew, никто не говорить их выкатывать на прод как latest. А тегать во время сборки, почему бы и нет.
а как тегать во время сборки?
11:36:47 ДП
User 141089312
как вести отсчёт?
11:37:10 ДП
User 141975931
Через jenkins например
11:37:27 ДП
User 141975931
Держать 13 реп под это дело как раз удобно 😊
11:37:34 ДП
User 141089312
ну через него, радимого и собираю и доставляю и разворачиваю
11:37:37 ДП
User 71516652
User 141975931
Andrew, никто не говорить их выкатывать на прод как latest. А тегать во время сборки, почему бы и нет.
если не использовать, то зачем и тегать? ) ну да ладно, пусть тегается
11:37:49 ДП
User 141975931
А если коммит в одну репу требует изменения остальных 12, то тогда может незачем их разбивать на отдельные контейнеры?
11:38:38 ДП
User 141975931
Andrew, использовать можно например на локальной машинке, чтобы не лазить каждый раз и не смотреть какая сейчас свежая версия. Предварительно конечно сделать pull.
11:39:23 ДП
User 141089312
вот собственно и вопрос - как не тегая latest узнать какая сейчас последняя
11:39:33 ДП
User 141089312
в автоматическом режиме, без участия человека
11:40:00 ДП
User 141975931
используя средства автоматической сборки
11:40:05 ДП
User 141089312
оно же всё такое API-шное, но что-то банальных вещей нет
11:40:18 ДП
User 141975931
например в случае Teamcity использовать сборку как artefact depence для деплой конфигурации
11:40:28 ДП
11:40:56 ДП
User 141975931
думаю в jenkins должен быть аналог
11:41:34 ДП
User 141089312
банально хоть в файл записывай и потом вычитывай
11:41:52 ДП
User 141089312
единственный минус - при переезде CI - надо восстановить этот файл
11:42:50 ДП
User 141975931
В любом случае, правильно Андрей говорит. Ты всегда должен катить на прод известную версию, а не то что было latest в определенное время года.
11:43:35 ДП
User 141089312
отлично, с этим определились )))))
11:43:59 ДП
User 141089312
осталось понять как узнать эту последнюю версию для каждого конкретного образа )))))
11:44:24 ДП
User 141975931
Через артифакты
11:44:31 ДП
User 199882289
при сборке делай дополнительный тэг app-latest, app2-latest, app3-latest
11:44:52 ДП
User 141975931
А разница?
11:45:08 ДП
User 141975931
Разговор о том что ты зайдешь на прод и там будет бла-бла:latest
11:45:16 ДП
User 141975931
И ты не будешь знать из какого коммита оно собрано
11:45:28 ДП
User 141975931
Так как этот latest может в любой момент перетереться след сборкой
11:46:09 ДП
User 141089312
еще же захочется иногда откатиться на предыдущую сборку )))
11:46:23 ДП
User 141089312
а она уже не latest и тут наступает полный ступор )))
11:49:39 ДП
User 71516652
не полный ступор, а деплой должен знать какую версию он хочет задеплоить
11:49:43 ДП
User 71516652
конкретную, а не latest
11:49:50 ДП
User 71516652
как у вас там деплой настроен — это другой вопрос
11:50:36 ДП
User 141089312
хочу 2 отдельных джобы: 
- одна взять из регистри последнюю версию и задеплоить ее
- взять предыдущую версию и задеплоить ее
11:51:45 ДП
User 141089312
вот мне интересно - правда, что у 460 человек не возникало такой задачи? Неужели вы вводите каждый раз версию, которую вам надо собрать?
11:51:59 ДП
User 71516652
вам уже сказали как делать можно
11:52:01 ДП
User 71516652
и как делают
11:52:18 ДП
User 71516652
у меня каждый имедж тегается и пушается гит_коммитом текущим
11:52:37 ДП
User 71516652
он уже уходит в консул-ключ
11:52:52 ДП
User 71516652
откуда его уже подцепляет "система диплоя" и собственно диплоит
11:53:09 ДП
User 71516652
в этот же консул ключ можно засунуть любой git sha
11:53:28 ДП
User 141089312
User 71516652
у меня каждый имедж тегается и пушается гит_коммитом текущим
прям весь sha1 ключ?
11:53:37 ДП
User 71516652
прям весь, о ужас )
11:54:08 ДП
User 71516652
можно 8 символов первые брать, если так бугают 32 символа (или сколько там) :)
01:14:33 ПП
User 68033497
Всем привет
случайно никто не поднмал samba-ad-dc от pitkley/samba-ad-dc?
01:15:09 ПП
User 141975931
Нет, но просто samba-ad-dc поднимали
01:17:21 ПП
User 68033497
Я и руками поднмал, потом решил в контейнере поднять
у меня всегда ругается на 
../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_ACCESS_DENIED
02:01:11 ПП
User 120303278
Всем привет! а кто какой процесс-супервайзер в контейнере использует? например если я хочу запустить в контейнере условный cron, я хотел бы сделать это из под какого менеджера, пока смотрю в сторону s6, supervisord или my_init (https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/, https://blog.tutum.co/2014/12/02/docker-and-s6-my-new-favorite-process-supervisor/)
blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem
When building Docker containers, you should be aware of the PID 1 zombie reaping problem. That problem can cause unexpected and obscure-looking issues when you least expect it. This article explains the PID 1 problem, explains how you can solve it, and presents a pre-built solution that you can use:
02:03:06 ПП
User 71516652
my_init это не супервайзер процессов
02:03:25 ПП
User 71516652
это такой баш-скриптик который умеет init 1 быть нормально
02:03:58 ПП
User 71516652
phusion в качестве супервизора предлагает runit использовать (и собственно он есть в их имаджах)
02:05:35 ПП
User 120303278
это не столь важно в контексте моего вопроса, но за уточнее спасибо)
02:06:51 ПП
User 71516652
ну вроде как в контексте "какой супервайзер выбрать: А, Б или Ц" уточнее, что Ц это не супервайзер, а вот Д — супервайзер вполне себе важно :)
02:09:14 ПП
User 120303278
ну если быть точным то my_init – это супервазер процессов, и написан он на питоне, а не на баше, поэтому все вроде ок
02:10:21 ПП
User 120303278
по функционалу он конечно не дотягивает до supervisord  но это не мешает ему управлять поведением некоторых процессов
02:14:58 ПП
User 71516652
баш / питон, ок )
02:15:04 ПП
User 71516652
каким поведением он как позволяет управлять?
02:17:56 ПП
User 120303278
исходя из кода https://github.com/phusion/baseimage-docker/blob/rel-0.9.16/image/bin/my_init он как минимум умеет запускать и завершать процессы. Причем он умеет запускать загрузочные скрипты из init.id и rc.local
github.com/phusion/baseimage-docker/blob/rel-0.9.16/image/bin/my_init
baseimage-docker - A minimal Ubuntu base image modified for Docker-friendliness
02:26:27 ПП
User 71516652
он умеет быть правильным init
02:26:53 ПП
User 71516652
сравнивать это с супервизорами типа runit / systemd / supervisord — некорректно
02:27:41 ПП
User 71516652
хотя...
02:27:44 ПП
User 71516652
почему бы и нет )
02:28:12 ПП
User 71516652
в целом запустить что нужно оно вполне может, для контейнера этого может оказаться вполне достаточно
02:36:20 ПП
User 120303278
мне кажется тут вопрос больше с терминологией связан, я бы назвал его очень базовым супервизором по сравнению с остальными и как раз для контейнера мне такой по сути и нужен) я решил поинтересоваться у сообщества – вдруг что-то еще есть
05:40:11 ПП
User 104769039
видел связку tini + supervisord. tini как pid 1, для убиения зомбей, а оно уже стартует supervisord для всего остального
05:40:44 ПП
User 104769039
но там нюансы с логами насколько я помню