Denis
А как вы решаете проблему прав с доступами девелоперов на дев хостах ?
Denis
типа хочется ему там позапускать контейнеры самому разные собранные им
Denis
как вы там выдаёте права им ?
Evgeny
Никак. Нехай локально пускает
Denis
я так понимаю если его посадить в группу docker то по факту это дать рута
Vladimir
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
как я уже сказал - правильно когда контейнер не имеет зависимостей, а берёт, запускается и работает.
Василий
т.е. в папке с проектом - папки с настройками докер композера, отдельна папкеа с кодом проекта, отдельна папка с базой.
Василий
Когда проект нужен - запускается докер композер и в шторме весь проект сразу доступен.
Василий
Единственно что рекомендую тестовую обмотку в отдельном контейнере держать.
Vitalii
Vitalii
Рассказываю рецепт
Vitalii
все зависит от окружения: продакшен или дев.
Василий
не должно же зависить от окружения как бе, не?
Vitalii
должнл\о
Vitalii
сейчас расскажу почему
Combot
combot.org/chat/-1001043771136
Vitalii
Для продакшена
Код пакуется в сами контейнеры и никаких волюмов . Контейнер долежн быть полностью самостоятельным и не иметь зависимостей. Это упрощает обслуживание, поднятие нескольких контейнерв, отказоустойчивость и куча всего еще.
То есть, береш проект и выделяешь их него файлы которые надо нгинксу (входные файлы и статика), а все пхп файлы в контейнер пхп-фпм.
В итоге получается два независимых контейнера готовых к продакшену.
Ясное дело юзерконтент и все важные файлы маппятся на хост и под бекап.
Vitalii
Для девеломпента все совсем иначе.
Варич для прода сделан с упором на работу и обслуживание проекта, но он совсем не удобен для разработки.
Поэтому код лежит на хосте и прокидывается в оба контейнера нгинкс и фпма. ну и из этого все вытекающие последствия - нужно в пхп контейнере создавать юзена, с UID & GID юзера на хосте из подк оторого сидит разраб, чтобы файлы создаваемые внутри кнтейнера (аля композер и прочее) сразу попадали на хост в папку проекта и не имели конфликтов с правами на хосте... и все в этом духе.
Vitalii
Vitalii
Но, я сразу скажу, что я сильно заморочился чтобы сделать как по феншую докера продакшен среду. Я так же знаю кучу проектов, который как и ты на продакшене маппят папку с хоста и не морочатся и все работает.
Василий
Код пакуется в сами контейнеры - т.е. у тебя локально билдер какой-то настроен с правилами сборки?
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 и прочего хлама
Василий
в общем я подумаю про код в контейнер. Но пока менять не буду свою схему.
Alf 🙀
dockerignore вроде завезли
Vitalii
для нгинкса надо закрыть почти все
Alf 🙀
оно работает так же как гитигнор же
Alf 🙀
пишешь общий
Alf 🙀
для каждого добавляешь нужное
Vitalii
А так бы я настроил один гитигнор и в оба контейнера паковалось бы только не запрещенное.
Alf 🙀
зачем вообще в контейнеры код пихать я никак понять не могу
Vitalii
да, понять это очень сложно пока не столкнешься на практике)
Vitalii
причин больше чем ты думаешь
Alf 🙀
окей
Vitalii
отказоучтойчивость и обслуживание наверное смые основные
Vitalii
чет не так полшло с общей папкой - лег весь сайт, так что общая папка на все процессы
Vitalii
надо тебе заменить код... опять же общее место его хранения - узкое место в проекте
Vitalii
со схемой "общая папка" на двух серверах уже не получится запустить сервер
Vitalii
то есть при масштабировании придется опять чет мудрить.
Vitalii
Если два контейнера пишут в одну общую папку - как разруливать доступ к файлам?
Vitalii
пробрасывание папки в контейнер -оверхед на доступ к файлам, так как это все ресурсы)
Василий
мде. Деплой в параллельном мире. Сорян, нет времени в конкретику, но все норм и с несколькими серверами, и отказоустойчивостью, и обслуживанием (если не в ручную, конечно)
Vitalii
Vitalii
и я уверен, если у тебя маленький проект - разницы заметно не будет)
Vitalii
я сразу делал с закладкой на будущее, чтобы потом не переделвать :)
Vitalii
Ребят, кто в докерсети шарит? Подскажите куда копать.
Я развернуть OpenVPN сервер в контейнере. Соответственно tun0 находишься в контейнере, а надо чтобы он как-то оказался на хосте.