engelbart
а докер пулу ключами передавать имя регистри или есть где то общий конфинг раскатать по машинам?
Igor
так имя образа у тебя будет содержать хост
engelbart
ааа, понял
Igor
ченить типа myregisty.com/server/nginx например
Alexander
Я только начал разбираться с докером
Он в себе реальную систему содержит или набор команд к родительской системе?
Alexander
Хочу на малинке поднять gitlab runner с докером и необходимыми настройками
Igor
у него свой демон, но ядро будет юзать твоей системы
Igor
на малине вроде пашет, чел знакомый что-то подымал
engelbart
А я вдруг подумал, вы ж наверняка знаете, как мне попроще организовать build машину докер контейнеров.
engelbart
Я вдруг подумал а нельзя ли и её внутрь докера, ну что б уж полная рекурсия.
Igor
да так и сделал
Igor
сокет докера пробрось просто в контейнер с ci
Igor
и установи туда docker cli
Igor
и все, docker команды будут из контейнера уходить в хост машину для билда чего тебе там надо
engelbart
хм, интересно
engelbart
Тока ж образа то получается снаружи будут
Igor
да, но тебе он внутри зачем? ты же его все равно в регистри толкнешь
engelbart
Да понял, верно
engelbart
А что для автоматизации взять ?
Ну что б туда докерфайлы лить с зависимостями и на выходе иметь docker push
engelbart
Есть что нибудь или костылить ?
Igor
у нас Jenkins, проекты в github, для сборки используем Jenkins pipline, удобны тем что в корень репозитория кладется Jenkins файл который описывает всё что нужно для сборки проекта, обычно после сборки на выходе получается два образа, один содержит бэкэнд код, второй содержит фронт с nginx
engelbart
Есть несекретный пример для изучения ? Был бы признателен
Igor
мм ща подумаю, зашарю куданить
engelbart
Спасибо Игорь. Очень поможете.
Nikita
engelbart
Спасибо Дмитрий, но мне прямо надо локально
Cin
гитлаб можно и локально поднять
Cin
можно взять кучу разного софта или гитлаб в котором уже все есть
Cin
и registry и ci
engelbart
Угу, понял. Спасибо
Cin
https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor
Cin
К вопросу о docker-in-docker
engelbart
Прочитал да. Там следующий парагпаф про проброс сокета, помойму интереснее
Cin
Угу, можно и так. На счет логов рекомендую еще глянуть на ELK
Cin
Но объективно сравнить не могу, так как с greylog дело не имел
Igor
грейлог использует elastic как бэкэнд для индексации логов, так что в принципе можно спокойно юзать кибану рядом с эластиком. И даже логсташ если сильно хочется. Грейлог мне понравился тем что там есть алерты, потому что у меня все же основная задача не графики красивые рисовать, а получать инфу своевременно когда что-то упало или сыпит ошибками
Vyacheslav
Vyacheslav
Igor
Igor
но если упадет когда контейнер уже работал, то просто в сислог хост машины демон начент срать ошибкой что сервер не доступен
Vyacheslav
Vyacheslav
я думаю этим же занимается сам Docker и на производительности самого приложения в контейнере никак не отражается ?
Vyacheslav
это я к тому, что служба при каждой записи в лог, не должна ждать по 30 секунд таймаута, из-за того сервер логов не доступен к примеру
Igor
нет конечно, демон делает это асинхронно
Vyacheslav
вот, это хорошо, спасибо
Igor
сам контейнер просто пишет в буфер stdout
Vyacheslav
да да
Vyacheslav
а дальше уже сам Docker решает каким драйвером обрабатывать
Vyacheslav
как ты настроил так и будет
Igor
я точню не помню, но помоему там можно даже настроить какими порциями выгружать логи
Vyacheslav
это удобнее, чем монтировать VOLUME, потом поднимать второй контейнер с filebeat, к нему подключать его и грузить в logstash... сразу 2 лишних звена выпадает из цепи
Anton
Даа, красота! И что самое крутое, можно вообще все логи перенаправить в stdout, включая те, к-ые не умеют туда выводиться:
RUN ln -sf /dev/stdout /var/log/nginx/access.log
RUN ln -sf /dev/stderr /var/log/nginx/error.log
(из официального образа nginx)
Alex
ого, фигасе.
Антон
кто нибудь знает как можно передать docker container id между stage в .gitlab-ci.yml ?
Anonymous
А если через сварм запустить контейнер на другом серваке то как ему том подрубать через -v?
Cin
откуда?
Anonymous
Чего откуда
Anonymous
Как папку смонтировать-то?
Alex
А зачем?
Alex
В вольюмах храни
Anonymous
А волюм по сети как?
Nikolay
Жизненный вопрос
Nikolay
Есть контейнер, из него обращаеются к ссылке
Nikolay
DNS на хостовой машине
Nikolay
Я пошел гуглить конечно, но может кто знает
Anonymous
Так что насчет тома?
Anonymous
Как по сети примонтировать
Ruslan
Вероятно надо пошукать на тему кастомных драйверов томов. Логи и сеть точно можно а вот томА - не уверен. Быть может проще будет примонтировать по nfs а потом уже как обычно
Igor
Как по сети примонтировать
примонтируй по сети на хост машины, а там уже просто монтируй как локальную папку. Я не знаю, может что-то изменилось, но раньше директива монтирования работала точно также в кластере, монтировать не рекомендуют, потому что то что монтируешь должно быть доступно на каждой из машин кластера, т.к. докер будет искать файлы локально, но как я сказал до этого, монтируешь то что надо на все тачки кластера, а потом со спокойной душой говоришь примотировать эту папку в конейнер указывая уже локальный путь, который будет на всех хост машинах одинаковый
Igor
но это костыль, почему не добавить нужное файло тупо в билд образа?
Vyacheslav
сейчас даже конфиги где могут содержаться пароли, ssl серты и т.д. рекомендуют хранить в docker secret, он доступен на любом хосте будет...
Vyacheslav
можно и просто конфиги там хранить, чтобы в сам образ не пихать
engelbart
что за docker secret, прямо как js фреймворки как будто, каждый день новая приблуда
agic
Ruslan
agic
https://blog.nimbleci.com/2016/11/17/whats-coming-in-docker-1-13/#secrets-management