MacOS + Docker volumes — что с chmod? Как производительность?
Несколько лет работаю на Linux, хочу перейти на Mac. Все тонкости с образами под arm, и эмуляторам x86 знаю и понимаю. Понимаю что в целом все заведётся и будет работать. Но меня интересуют нюансы. Буду сравнивать с Windows, так как понятное дело, что на Linux с этим все чётко. Подскажите пожалуйста, нет ли похожих проблем на Mac?
1) На винде, в wsl2 на стыке файловой системы хоста и wsl были большие проблемы с производительностью. Если проект лежит внутри файловой системы wsl, то приложение работает быстро, но ide (jetbrains) сильно тормозит из-за синхронизации файлов. И наоборот, если проект лежит на хост машине и монтируется в wsl, то ide летает, а приложение жутко тупит. Нет ли таких проблем на маках? Вопрос не про конкретную ide и её настройку, не про wsl, а про контейнеризацию на macos
2) Volumes. На windows все файлы и каталоги в docker volumes имеют chmod внутри контейнера 777. Оно конечно работает, но это не то что я хочу. Я стараюсь делать безопасный конфиг, указывая конкретные uid/gid и юзера, с которым стартует контейнер. Мне важно чтобы при деплое на прод не выскакивало сюрпризов, что либо контейнеру не хватает прав, либо без рута не сделать бэкап volumes на хост машине. Я хочу, чтобы моё dev окружение в этом плане соответствовало проду. Какие chmod будут на Mac мне не важно, главное чтобы на маке я мог например удалить что-то из volumes без sudo, а с точки зрения контейнера чтобы в volume были те chmod, и те владельцы у файлов и директорий, которые проставил сам контейнер.
3) Вопрос тоже про volumes. ChatGPT говорит что если у меня данные условной монги или elasticsearch лежат на маке внутри volumes, то может быть существенная просадка производительности. Я конечно не собираюсь поднимать прод на маке, но для сбора и обработки некоторых датасетов планирую использовать именно мак, и хочу понимать насколько ощутимы эти тормоза если в условной монге или эластике будет около 10 гб данных. Вопрос скорее про ваши субъективные ощущения, а не конкретные цифры.
Мой вопрос не для новичков, а для тех кто понимает о чем речь. Прошу не советовать мне вернуться на Windows c wsl2, использовать vscode итд. Мои знания про wsl2 могли устареть, может на винде уже все давно летает, но мои вопросы сейчас - про мак
1) По существу: нативного докера на MacOS и Windows нет, и там и там под капотом поднимается виртуалка (Linux на MacOS, используется WSL2 на Windows как вариант), и мы имеем разные ФС в разных ОС, фактически. Это будет приводить к разнообразным потерям по производительности на стыке. Это ответ по существу вполне.
Не знаю насчёт Jetbrains, но VSCode умеет работать с файлами прямо в контейнерах/WSL, но оценить такую работу с тз производительности не смогу. В любом случае, такое окружение с разными ФС не будет соответствовать проду.
2) > На Windows все файлы и каталоги в docker volumes имеют chmod внутри контейнера 777
Это происходит потому, что ФС Windows не поддерживает права файлов POSIX, и для всех файлов имитируются права 777. ФС MacOS поддерживает права POSIX и, скорее всего, вы сможете задать нужные.
По ссылке на OrbStack есть дополнительная статья с оценкой производительности различных решений, возможно, она будет полезна: https://habr.com/ru/articles/854832/