Docker, начало (1)

Аватар пользователя artomas artomas 10 апреля в 18:16

Добрый вечер.

Не пользовался Докером, работал с МАМПом просто. Было время сегодня, начал разбираться. Уже, честно говоря, лень гуглить, надеюсь на пояснения тех, кто пользуется.

Все поставил, все работает, плюсы понимаю (как я сам думаю). Есть первые вопросы:

1. Медленнее работает, чем МАМП. Я понимаю разницу, но можно как-то ускорить? Речь соответственно про локаль, если что.

2. А Апач можно вместо Нгинкса? Может вопрос и тупой, но вот на сейчас так.

3. Делал по https://www.digitalocean.com/community/tutorials/how-to-develop-a-drupal.... Но Друпал продолжает ругаться на права settings.php (и выше). Хотя, в Терминале вижу ответ, как в инструкции показан. Да и тупо проверяю -- не дает редактировать settings.php. Кэши все, если что очистил (вдруг важный вопрос будет).

4. И самый тупой, вероятно, вопрос))) Контейнер юзеру отдавать целиком? У него же мусора куча будет, нет? Вот тут плохо понимаю: для разработки отлично, как понял, но клиенту ведь нужно просто Друпал с базой отдать.

Читал статьи помимо ДО, но конечно что-то вполне упустил. Пока нет сил и времени больше разбираться. Запрашиваю пояснения. Можно без пояснений, просто ссылки (вполне на английском подойдут, но не мануалы желательно, лучше статьи какие-то).

Благодарю.

Комментарии

Аватар пользователя madt madt 10 апреля в 18:21

На Win и macOS будет медленнее, чем нативная установка. На линуксе будет почти так же быстро.

Ответ на вопросы 2-4: поставь docksal и просто создавай проекты.

Аватар пользователя artomas artomas 10 апреля в 18:26

"И просто создавай проекты" -- речь о работе самостоятельно? Я все-таки ожидаю использования ГИТа. Туплю, вероятно, но, как понял, просто можно отдать по старинке проект без ddev + базу из экспорта = будет "обычный" вариант. А вот для команды можно все это пилить с учетом ГИТа. Так примерно?)))

Аватар пользователя madt madt 10 апреля в 18:45

У меня тоже мак. Это... очень большая непроходимая боль в производительности докера. Пришлось на еще один макмини поставить Убунту, а там уже поднять docksal. В итоге со своего основного миника по ssh удаленно работаю на минике с убунтой и доксалом. Всё быстро и хорошо.

Командная работа идет без проблем. Например, задачи по drupal.ru делаем с @ivnish. Для проектов на Drupal 8/9 — экспорт/импорт конфигов. Конфиги в репозитории. Контент пока руками переношу. Но, мне можно, я ненастоящий программист.

Теперь осталась только одна задача — понять, как в этой связке использовать xdebug.

Аватар пользователя artomas artomas 10 апреля в 19:27

Если бы была вторая машина, можно было конечно отдельно под разработку выделить, но сейчас совсем иначе.
Контент ладно, оставим.
Про конфиги поясни, пжл, я не программист ведь тоже, макс кастом минимальный написать смогу))): мы, вероятно, о разном говорим (но не уверен).

Аватар пользователя gun_dose gun_dose 10 апреля в 20:30

Одна поправочка, на винде можно запустить докер под wsl2, который по сути практически нативный линукс и докер будет работать точно так же быстро, как на линуксе.

Аватар пользователя artomas artomas 10 апреля в 20:07

И что, это все? Неужели нет ответов/мнений еще? Ребяты, хочу развиться. Кто поможет?

"Тикет" будет "закрыт" в понедельник вечером. Здесь все бесплатно, я все понимаю.

Но была надежда. Вдруг, еще кому понадобится мой тупняк.

Аватар пользователя artomas artomas 10 апреля в 20:25

Дык я тоже отдыхаю. Как говорил дедушка Ленин: " смена рода деятельности -- отдых")))
Не дословно конечно.

Аватар пользователя gun_dose gun_dose 10 апреля в 20:27
1

Чтобы ускорить докер на маке, когда монтируешь волюмы, нужно добавлять в конце ":cached". Например:

volumes:
  - ./drupal: /var/www/html:cached
Аватар пользователя bsyomov bsyomov 13 апреля в 12:50

1. Настроить mysql правильно, и.т.п. Всё как без докера. Докер запущен в виртуалке, там есть оверхед, но на современном железе очень не большой обычно. Мало того, в linux окружении должно даже быстрее работать, на самом деле. Контейнеры готовые это заготовки, просто быстрый способ развёртывания, софт тоже надо настраивать, об этом часто забывают. Smile

2. Можно. Можно любой свой набор контейнеров с любыми своими настройками.

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

Не стоит вестись на доксал и прочие обёртки. Надо учиться готовить контейнеры правильно, самостоятельно под свои конкретные нужды, иначе, туда и лезть смысла нет.

Аватар пользователя madt madt 14 апреля в 14:07

А если я не хочу развиваться как DevOps, но хочу использовать удобства докера? Ты же не будешь рекомендовать всем разработчикам самим собирать себе железо для работы. Docksal — это как современное авто с коробкой «автомат» — сел и поехал, а если не едет, то зовешь автомеханика гуглишь что делать.

Аватар пользователя fairrandir fairrandir 14 апреля в 15:28

madt wrote:Ты же не будешь рекомендовать всем разработчикам самим собирать себе железо для работы.

Эммм. Почему?

Аватар пользователя madt madt 14 апреля в 17:59
1

Потому что технологический процесс добычи и переработки кремния и прочих составляющих очень сложный и дорогой.

Аватар пользователя bsyomov bsyomov 14 апреля в 22:19

Разработчикам совсем не обязательно специализироваться в OPS, но вот своё окружение безусловно знать надо.
На и понимание докера это совсем не специализация в DevOps, это знание своих собственных инструментов.
Так можно докатиться до того, что не надо и IDE свою изучать, да и вообще, пользоваться конструктором для создания сайта, не?

Аватар пользователя madt madt 15 апреля в 2:03

Согласен, что окружение знать надо. Однако, когда хочется «поставил и оно само работает», или в самом начале освовения Drupal, или когда разработка только хобби, то такие решения как docksal — прекрасный вариант.

Аватар пользователя bsyomov bsyomov 15 апреля в 12:04

Только до того момента, пока всё хорошо работает и не надо сделать шаг в сторону.
И тогда не знание того, как всё это внутри работает, делает малореальным поиск и исправление проблемы.

Для такого кейса, лучше всё же инструмент по проще использовать. Не тот, что просто выглядит, а тот, что просто сделан.

Прямо у нас с тобой есть перед глазами два примера:
1. Вот там непонятки с правами в этой теме. И сходу что-то никто не ответит, почему. Smile
2. Вот ты сам отлаживаться удалённо хотел с xdebug. Разобрался уже? Smile

Аватар пользователя madt madt 15 апреля в 16:39

bsyomov wrote: Для такого кейса, лучше всё же инструмент по проще использовать.

Да, но на маке выбор не столь велик. Когда-то давно я использовал Acquia Dev Desktop 2, но его поддержка прекращена. Сейчас я использую docksal. И меня всё устраивает.

bsyomov wrote: Вот ты сам отлаживаться удалённо хотел с xdebug. Разобрался уже?

Еще нет, но я нашел как отладить по-другому. Для меня xdebug — это опциональное знание. Если задача по настройке xdebug станет более важной, то, несомненно, я займусь ею более внимательно.

Кстати, как у тебя с докером? Сможешь помочь, если детально опишу задачу и проблему? Wink

Аватар пользователя bsyomov bsyomov 15 апреля в 22:34

На маке с выбором всё отлично. Можно просто поставить нативный php, нативный apache и нативный mysql, и это будет просто хорошо работать, в отличии от винды. Smile

Ну или виртуалка и докер.

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

Аватар пользователя artomas artomas 14 апреля в 18:27

А по вопросу номер 3 кто-то может предположить ответ все-таки?

3. Делал по https://www.digitalocean.com/community/tutorials/how-to-develop-a-drupal.... Но Друпал продолжает ругаться на права settings.php (и выше). Хотя, в Терминале вижу ответ, как в инструкции показан. Да и тупо проверяю -- не дает редактировать settings.php. Кэши все, если что очистил (вдруг важный вопрос будет).

За остальные ответы благодарю.

Аватар пользователя artomas artomas 14 апреля в 19:01

В Терминале видел ответ -- гуд.
В свойствах файла вижу -- гуд.
Открываю файл в редакторе -- говорит только читать можешь.
А Друпал сам в админке ругается.

Аватар пользователя gun_dose gun_dose 14 апреля в 21:27

Ещё раз повторю - в терминале в макоси или в терминале внутри докер-контейнера? Там могут быть разные пользователи

Аватар пользователя gun_dose gun_dose 14 апреля в 22:57

Надо в контейнер зайти и там посмотреть. Например, в docker4drupal для макоси отдельный билд контейнера используется с другим юзером. И если папку проекта перетянуть на флэшке с линукса на макось или наоборот, то обязательно возникают проблемы с владельцем файлов.

Аватар пользователя artomas artomas 14 апреля в 23:12

Но с флэшкой тут конечно нет причин. Просто для понимания.
Как это может может влиять тупо на статус Друпала? Серьезно, не понимаю. Это же внутри контейнера все происходит. А там, типа, все норм.
Я понимаю про изоляцию. Вы имеете ввиду, что система не видит свойств файлов (каталогов), так как изолирована? Или я ваще не понимаю, что происходит пока)))

Аватар пользователя gun_dose gun_dose 14 апреля в 23:24

На макоси один юзер хозяин, а в контейнере другой. Неужели так трудно зайти в контейнер и в web/sites/default выполнить команду ls -l?

Изоляция изоляцией, но смысл контейнера в том, что это не виртуальная машина, а операционная система. Соответственно там в операционной системе свои юзеры со своими доступами. И вовсе необязательно таскать что-то на флэшках. Бывает, что несколько разрабов сидят на разных осях и коммитят в гит, и случаются казусы с владельцем файлов, что приходится вместо git pull делать sudo git pull. А потом опять же какие-то траблы с доступами. На крайняк, если уже совсем никак не пашет, можно сделать sudo chmod -R 777 web/sites/default, а потом сбросить кэш, должны будут выставиться нужные права.

Аватар пользователя artomas artomas 14 апреля в 23:36

Ниче не сложно, делал ls -la. Если точно помню (нет доступа сейчас), было -- ок.

sudo chmod -R 777 web/sites/default -- допустим. Не думал.
+ см. следующую строку.

sudo git pull
Поясните опасность. Может вопрос глупый, но sudo всегда напрягает.

Аватар пользователя gun_dose gun_dose 14 апреля в 23:49

Гитом могут притянуться файлы, созданные от имени другого юзера. Потом, когда притянутся изменения этих файлов, без sudo гит не сможет их переписать. Хотя по-хорошему надо игнорировать в гите доступы к файлам, но не все это делают.

Аватар пользователя artomas artomas 15 апреля в 0:04

"Обнадеживающий" ответ))) Но спасибо все равно. Я в смысле безопасности.

Ладно, разберусь как-то все равно со всеми ответами и рекомендациями.

Если есть что сказать про Докер, напишите исчо. Людям надо.

Люди, которые не в курсе, тоже пишите, если это конечно вам надо ваще.
Если этот призыв нарушает правила сайта... мне пофиг)))

Будет у меня вывод и мануал, напишу сам. (Не обещаю.)

Аватар пользователя gun_dose gun_dose 15 апреля в 0:22

По опыту общения с новичками могу сказать, что в докере самое главное - это понимать, в какой ты сейчас операционной системе находишься в консоли))