Добрый вечер.
Не пользовался Докером, работал с МАМПом просто. Было время сегодня, начал разбираться. Уже, честно говоря, лень гуглить, надеюсь на пояснения тех, кто пользуется.
Все поставил, все работает, плюсы понимаю (как я сам думаю). Есть первые вопросы:
1. Медленнее работает, чем МАМП. Я понимаю разницу, но можно как-то ускорить? Речь соответственно про локаль, если что.
2. А Апач можно вместо Нгинкса? Может вопрос и тупой, но вот на сейчас так.
3. Делал по https://www.digitalocean.com/community/tutorials/how-to-develop-a-drupal.... Но Друпал продолжает ругаться на права settings.php (и выше). Хотя, в Терминале вижу ответ, как в инструкции показан. Да и тупо проверяю -- не дает редактировать settings.php. Кэши все, если что очистил (вдруг важный вопрос будет).
4. И самый тупой, вероятно, вопрос))) Контейнер юзеру отдавать целиком? У него же мусора куча будет, нет? Вот тут плохо понимаю: для разработки отлично, как понял, но клиенту ведь нужно просто Друпал с базой отдать.
Читал статьи помимо ДО, но конечно что-то вполне упустил. Пока нет сил и времени больше разбираться. Запрашиваю пояснения. Можно без пояснений, просто ссылки (вполне на английском подойдут, но не мануалы желательно, лучше статьи какие-то).
Благодарю.
Комментарии
На Win и macOS будет медленнее, чем нативная установка. На линуксе будет почти так же быстро.
Ответ на вопросы 2-4: поставь docksal и просто создавай проекты.
"И просто создавай проекты" -- речь о работе самостоятельно? Я все-таки ожидаю использования ГИТа. Туплю, вероятно, но, как понял, просто можно отдать по старинке проект без ddev + базу из экспорта = будет "обычный" вариант. А вот для команды можно все это пилить с учетом ГИТа. Так примерно?)))
У меня тоже мак. Это... очень большая непроходимая боль в производительности докера. Пришлось на еще один макмини поставить Убунту, а там уже поднять docksal. В итоге со своего основного миника по ssh удаленно работаю на минике с убунтой и доксалом. Всё быстро и хорошо.
Командная работа идет без проблем. Например, задачи по drupal.ru делаем с @ivnish. Для проектов на Drupal 8/9 — экспорт/импорт конфигов. Конфиги в репозитории. Контент пока руками переношу. Но, мне можно, я ненастоящий программист.
Теперь осталась только одна задача — понять, как в этой связке использовать xdebug.
Если бы была вторая машина, можно было конечно отдельно под разработку выделить, но сейчас совсем иначе.
Контент ладно, оставим.
Про конфиги поясни, пжл, я не программист ведь тоже, макс кастом минимальный написать смогу))): мы, вероятно, о разном говорим (но не уверен).
Одна поправочка, на винде можно запустить докер под wsl2, который по сути практически нативный линукс и докер будет работать точно так же быстро, как на линуксе.
Отлично, будет кому-то в помощь.
И как это поможет в случае 4?
Разберется с конфигами и вопрос #4 просто отпадет.
Да, забыл: OS X.
И что, это все? Неужели нет ответов/мнений еще? Ребяты, хочу развиться. Кто поможет?
"Тикет" будет "закрыт" в понедельник вечером. Здесь все бесплатно, я все понимаю.
Но была надежда. Вдруг, еще кому понадобится мой тупняк.
В субботу и воскресенье обычно на друпал.ру никого нет. Все отдыхают)
Дык я тоже отдыхаю. Как говорил дедушка Ленин: " смена рода деятельности -- отдых")))
Не дословно конечно.
Чтобы ускорить докер на маке, когда монтируешь волюмы, нужно добавлять в конце ":cached". Например:
- ./drupal: /var/www/html:cached
1. Настроить mysql правильно, и.т.п. Всё как без докера. Докер запущен в виртуалке, там есть оверхед, но на современном железе очень не большой обычно. Мало того, в linux окружении должно даже быстрее работать, на самом деле. Контейнеры готовые это заготовки, просто быстрый способ развёртывания, софт тоже надо настраивать, об этом часто забывают.
2. Можно. Можно любой свой набор контейнеров с любыми своими настройками.
4. Отдавать сайт архивом файлов и базу, или использовать систему контроля версий в общем, тут обычно не меняется ничего. Мало где нужен и применим в продакшене ваш набор контейнеров, даже если там используются контейнеры.
Не стоит вестись на доксал и прочие обёртки. Надо учиться готовить контейнеры правильно, самостоятельно под свои конкретные нужды, иначе, туда и лезть смысла нет.
А если я не хочу развиваться как DevOps, но хочу использовать удобства докера? Ты же не будешь рекомендовать всем разработчикам самим собирать себе железо для работы. Docksal — это как современное авто с коробкой «автомат» — сел и поехал, а если не едет, то
зовешь автомеханикагуглишь что делать.Эммм. Почему?
Потому что технологический процесс добычи и переработки кремния и прочих составляющих очень сложный и дорогой.
Разработчикам совсем не обязательно специализироваться в OPS, но вот своё окружение безусловно знать надо.
На и понимание докера это совсем не специализация в DevOps, это знание своих собственных инструментов.
Так можно докатиться до того, что не надо и IDE свою изучать, да и вообще, пользоваться конструктором для создания сайта, не?
Согласен, что окружение знать надо. Однако, когда хочется «поставил и оно само работает», или в самом начале освовения Drupal, или когда разработка только хобби, то такие решения как docksal — прекрасный вариант.
Только до того момента, пока всё хорошо работает и не надо сделать шаг в сторону.
И тогда не знание того, как всё это внутри работает, делает малореальным поиск и исправление проблемы.
Для такого кейса, лучше всё же инструмент по проще использовать. Не тот, что просто выглядит, а тот, что просто сделан.
Прямо у нас с тобой есть перед глазами два примера:
1. Вот там непонятки с правами в этой теме. И сходу что-то никто не ответит, почему.
2. Вот ты сам отлаживаться удалённо хотел с xdebug. Разобрался уже?
Да, но на маке выбор не столь велик. Когда-то давно я использовал Acquia Dev Desktop 2, но его поддержка прекращена. Сейчас я использую docksal. И меня всё устраивает.
Еще нет, но я нашел как отладить по-другому. Для меня xdebug — это опциональное знание. Если задача по настройке xdebug станет более важной, то, несомненно, я займусь ею более внимательно.
Кстати, как у тебя с докером? Сможешь помочь, если детально опишу задачу и проблему?
На маке с выбором всё отлично. Можно просто поставить нативный php, нативный apache и нативный mysql, и это будет просто хорошо работать, в отличии от винды.
Ну или виртуалка и докер.
Возможно смогу, надо задачу сформулировать, подумать, и возможно провести эксперимент. Я не использую его при разработке, просто потому, что мало ей занимаюсь, но использую его в некоторых проектах в продакшене.
А по вопросу номер 3 кто-то может предположить ответ все-таки?
За остальные ответы благодарю.
В терминале смотрите в своём или внутри контейнера?
В Терминале видел ответ -- гуд.
В свойствах файла вижу -- гуд.
Открываю файл в редакторе -- говорит только читать можешь.
А Друпал сам в админке ругается.
Ещё раз повторю - в терминале в макоси или в терминале внутри докер-контейнера? Там могут быть разные пользователи
В оси.
Надо в контейнер зайти и там посмотреть. Например, в docker4drupal для макоси отдельный билд контейнера используется с другим юзером. И если папку проекта перетянуть на флэшке с линукса на макось или наоборот, то обязательно возникают проблемы с владельцем файлов.
Но с флэшкой тут конечно нет причин. Просто для понимания.
Как это может может влиять тупо на статус Друпала? Серьезно, не понимаю. Это же внутри контейнера все происходит. А там, типа, все норм.
Я понимаю про изоляцию. Вы имеете ввиду, что система не видит свойств файлов (каталогов), так как изолирована? Или я ваще не понимаю, что происходит пока)))
На макоси один юзер хозяин, а в контейнере другой. Неужели так трудно зайти в контейнер и в web/sites/default выполнить команду ls -l?
Изоляция изоляцией, но смысл контейнера в том, что это не виртуальная машина, а операционная система. Соответственно там в операционной системе свои юзеры со своими доступами. И вовсе необязательно таскать что-то на флэшках. Бывает, что несколько разрабов сидят на разных осях и коммитят в гит, и случаются казусы с владельцем файлов, что приходится вместо git pull делать sudo git pull. А потом опять же какие-то траблы с доступами. На крайняк, если уже совсем никак не пашет, можно сделать sudo chmod -R 777 web/sites/default, а потом сбросить кэш, должны будут выставиться нужные права.
Ниче не сложно, делал ls -la. Если точно помню (нет доступа сейчас), было -- ок.
sudo chmod -R 777 web/sites/default -- допустим. Не думал.
+ см. следующую строку.
sudo git pull
Поясните опасность. Может вопрос глупый, но sudo всегда напрягает.
Гитом могут притянуться файлы, созданные от имени другого юзера. Потом, когда притянутся изменения этих файлов, без sudo гит не сможет их переписать. Хотя по-хорошему надо игнорировать в гите доступы к файлам, но не все это делают.
"Обнадеживающий" ответ))) Но спасибо все равно. Я в смысле безопасности.
Ладно, разберусь как-то все равно со всеми ответами и рекомендациями.
Если есть что сказать про Докер, напишите исчо. Людям надо.
Люди, которые не в курсе, тоже пишите, если это конечно вам надо ваще.
Если этот призыв нарушает правила сайта... мне пофиг)))
Будет у меня вывод и мануал, напишу сам. (Не обещаю.)
По опыту общения с новичками могу сказать, что в докере самое главное - это понимать, в какой ты сейчас операционной системе находишься в консоли))
Нормальный линк
Шаг 4.
Остальное как написал.
Ругается в статусе сайта.