All streams
Search
Write a publication
Pull to refresh
23
0
Aleksandr Kondaurov @kondaurovDev

Программер

Send message
Вы первый кто услышал меня, спасибо))
То что «в интернете нигде не пишут», я наверное погорячился, она есть конечно но docker way ее просто затемняет и просто не видишь таких практик.
Докер крут, можно очень просто запустить nginx, базу данных, любой linux с нужным окружением. Но не нужно делать из него серебряную пулю, и не нужно тащить его в CI, не нужно засорять репозитории Dockerfile и инфраструктурными вещами
Все dockerfile, конфигурацию и прочее я храню в git, отдельно от backend и frontend. Раньше я использовал Makefile но сейчас полностью перешел на Ansible. Все билдится и пушится одним прогоном плейбука, Ansible очень крут в этом :)
Конечно же, знаю — права за запись в докер регистри есть только у CI и админа, который эти права выдал CI, но админ докерные образы ручками делать не будет, у него другая работа.

Ну так так же можно выдать права на репозиторий где хранятся tar.gz файлы. Я тоже буду знать кто может заливать файлы. Можно сделать даже больше, подписывать tar.gz своим приватным ключом, и перед сборкой проверять что файл пришел от конкретного человека

Нет. Фишка в том, что CI собирает проект тоже внутри докер-контейнера, поэтому при повторе сборки на CI через месяц будет получен точно такой же результат — ведь проект собирался из тех же исходников и всё это происходило в том же контейнере.

Не согласен, я видел мало компаний который запускали сборки в докер контейнере, обычно запускают просто на хосте.
И зачем это делать? Кроме того, обычно собираемый образ тестируется перед релизом, на то оно и CI — или Вы и тесты не пишете? Так что корректно настроенный CI не зальёт в докер регистри неработающий образ. А любой залитый образ — будет одинаково работать везде.

Эх, если бы пайплайны были такие как вы говорите. Мало кто делает тесты, обычно пакуют что сбилдилось прям в образ и пушат его.
Я не говорю что нужно отказаться от докера, нет! Просто пусть образы будут собираться отдельным сервером, сделать что то типа automated builds в докер хабе
Да, с сервером приложений конечно проще :)
Но это касается только java экосистемы, есть ли похожее для nodejs?
Все таки докер это унифицированный подход. Как то wildlifly запускал в контейнере и работало))
А на какой сервер? И какой файлик поправить? :)
Файлик не поправите без пересборки образа и пуша в docker registry

Сборка образов и пуши отлично делаются через Ansible. Ничего вручную скачивать не нужно, пишется плейбук который скачивает tar.gz, билдит образ, пушит в docker registry.

Вообще это что то типа CQRS в программировании. Есть источник который пишет и есть те кто читают
Спасибо за комментарий!
1. Если вы сделаете docker pull то вы тоже не знаете кто подготовил образ, были ли у него ручные изменения и т.п. Образ может быть вообще битым, если есть права на запись в docker registry то можно запушить хоть hello-world образ под тегом вашего проекта и никто не заметит пока не спулит образ.
2. это по сути первый пункт, запушить можно что угодно, разве нет?
3. можно в образ с nodejs запихнуть проект написанный на несовместимой с данной версией ноды. Когда будет docker build то вы не получите никаких ошибок (если у вас не исполняются какой нибудь код конечно).
Конечно нет гарантий что tar.gz будет содержать то что нужно, но и docker registry не накладывает никаких ограничений. Если все одинаково, зачем тогда париться с докерной экосистемой?

Information

Rating
Does not participate
Registered
Activity