Denis
А как вы решаете проблему прав с доступами девелоперов на дев хостах ?
Denis
типа хочется ему там позапускать контейнеры самому разные собранные им
Denis
как вы там выдаёте права им ?
Evgeny
Никак. Нехай локально пускает
Denis
я так понимаю если его посадить в группу docker то по факту это дать рута
Aleksey
прикрути мордочку
Aleksey
и дай им права к мордочке
Aleksey
portainer например
Kirill
есть ли проблема давать рута на дев-хостах? они же дев, убил-создал
Denis
проблема в том что на одном хосте крутится ещё другого вагон всего
Denis
и "убил" может потратить в пустую время тестиеров \ девелоперов других
Vladimir
на такие хосты только дженкинса пускать можно)
Sander
Всем привет, у меня есть некая проблема, не знаю как ее реализовать. --- Есть image application где используется FROM (tianon/true), где я храню только файлы проекта (php), эти файлы php проекта подключаются к другим контейнерам, при помощи (volumes_from). Но есть проблема с permissions, надо использовать chmod. Но к сожалению этот image (tianon/true), не позволяет это сделать, он преднозначен только для хранения файлов. tianon/true - контейнер только для хранения файлов. https://hub.docker.com/r/tianon/true/ ==== Нужно именно отдельный image где будет храниться проект. Кто как решил данную проблему с permissons?
Alf 🙀
А почему все хотят запихнуть данные в контейнер?
Evgeny
phpшники-с
Alf 🙀
А потом удивляются что что-то пошло не так
Sander
потому что это мы пхп senioar developers
Sander
скажите как правильно
Sander
😔
Vladimir
как я уже сказал - правильно когда контейнер не имеет зависимостей, а берёт, запускается и работает.
Василий
скажите как правильно
я код отдельно ержу, и он подтягивается через volume.
Василий
т.е. в папке с проектом - папки с настройками докер композера, отдельна папкеа с кодом проекта, отдельна папка с базой.
Василий
Когда проект нужен - запускается докер композер и в шторме весь проект сразу доступен.
Василий
Единственно что рекомендую тестовую обмотку в отдельном контейнере держать.
Vitalii
Рассказываю рецепт
Vitalii
все зависит от окружения: продакшен или дев.
Василий
не должно же зависить от окружения как бе, не?
Vitalii
должнл\о
Vitalii
сейчас расскажу почему
Combot
combot.org/chat/-1001043771136
Vitalii
Для продакшена Код пакуется в сами контейнеры и никаких волюмов . Контейнер долежн быть полностью самостоятельным и не иметь зависимостей. Это упрощает обслуживание, поднятие нескольких контейнерв, отказоустойчивость и куча всего еще. То есть, береш проект и выделяешь их него файлы которые надо нгинксу (входные файлы и статика), а все пхп файлы в контейнер пхп-фпм. В итоге получается два независимых контейнера готовых к продакшену. Ясное дело юзерконтент и все важные файлы маппятся на хост и под бекап.
Vitalii
Для девеломпента все совсем иначе. Варич для прода сделан с упором на работу и обслуживание проекта, но он совсем не удобен для разработки. Поэтому код лежит на хосте и прокидывается в оба контейнера нгинкс и фпма. ну и из этого все вытекающие последствия - нужно в пхп контейнере создавать юзена, с UID & GID юзера на хосте из подк оторого сидит разраб, чтобы файлы создаваемые внутри кнтейнера (аля композер и прочее) сразу попадали на хост в папку проекта и не имели конфликтов с правами на хосте... и все в этом духе.
Vitalii
Но, я сразу скажу, что я сильно заморочился чтобы сделать как по феншую докера продакшен среду. Я так же знаю кучу проектов, который как и ты на продакшене маппят папку с хоста и не морочатся и все работает.
Василий
Код пакуется в сами контейнеры - т.е. у тебя локально билдер какой-то настроен с правилами сборки?
Vitalii
он запускается либо руками , либо в моем случае с CI
Василий
у мня файлами гоняется
Vitalii
беру проект, копирую из него нужный директории для каждого контейнера, а потом по очередно собираю каждый контейнер.
Василий
и один из аргументов, чтобы максимально дев соответствовал по структуре проду и наоборот.
Василий
С другой стороны - бд через волюм подключается.
Vitalii
Бд в отдельном контейнере должна жить
Василий
Следуя феншую - данные должны тоже в контейнере жить?
Vitalii
а файлы БД должны на хосте лежать
Василий
движок - да, а данные?
Vitalii
данные нет
Василий
вот, тут все так.
Василий
да, у тебя есть данные которые пользователем грузятся? файлы там какие?
Vitalii
/ — project root docker / build / — кишки проекта без .git и прочего дев хлама containers / php / build / — это файлы проекта для контейнера php nginx / build / — это файлы проекта для контейнера nginx
Vitalii
да, у тебя есть данные которые пользователем грузятся? файлы там какие?
конечно, это все тоже маппится на хост и под бекап
Alf 🙀
а зачем у тебя отдельно директория build
Alf 🙀
в которой кишки проекта без .git и прочего хлама
Василий
в общем я подумаю про код в контейнер. Но пока менять не буду свою схему.
Vitalii
а зачем у тебя отдельно директория build
мне так было проще отделить кишки от дев хлама. Я создаю tar архив только с тем, что нужно в контейнерах и тут же его распаковываю в ту папку build
Alf 🙀
dockerignore вроде завезли
Vitalii
dockerignore вроде завезли
докеригнор должен быть для каждого контейнера свой)
Vitalii
для нгинкса надо закрыть почти все
Alf 🙀
оно работает так же как гитигнор же
Alf 🙀
пишешь общий
Alf 🙀
для каждого добавляешь нужное
Vitalii
оно работает так же как гитигнор же
да, я понимаю. Но оно работает только если ты вов се контейнеры один и тот же код пихаешь. Я так идти не захотел.
Vitalii
А так бы я настроил один гитигнор и в оба контейнера паковалось бы только не запрещенное.
Alf 🙀
зачем вообще в контейнеры код пихать я никак понять не могу
Vitalii
да, понять это очень сложно пока не столкнешься на практике)
Vitalii
причин больше чем ты думаешь
Alf 🙀
окей
Vitalii
отказоучтойчивость и обслуживание наверное смые основные
Vitalii
чет не так полшло с общей папкой - лег весь сайт, так что общая папка на все процессы
Vitalii
надо тебе заменить код... опять же общее место его хранения - узкое место в проекте
Vitalii
со схемой "общая папка" на двух серверах уже не получится запустить сервер
Vitalii
то есть при масштабировании придется опять чет мудрить.
Vitalii
Если два контейнера пишут в одну общую папку - как разруливать доступ к файлам?
Vitalii
пробрасывание папки в контейнер -оверхед на доступ к файлам, так как это все ресурсы)
Василий
мде. Деплой в параллельном мире. Сорян, нет времени в конкретику, но все норм и с несколькими серверами, и отказоустойчивостью, и обслуживанием (если не в ручную, конечно)
Vitalii
и я уверен, если у тебя маленький проект - разницы заметно не будет)
Vitalii
я сразу делал с закладкой на будущее, чтобы потом не переделвать :)
Vitalii
Ребят, кто в докерсети шарит? Подскажите куда копать. Я развернуть OpenVPN сервер в контейнере. Соответственно tun0 находишься в контейнере, а надо чтобы он как-то оказался на хосте.