Дмитрий, еще раз огромный респект за уроки, но мне всё таки пришлось закостылить после внимательного изучения Ваших эпизодов.
В чем проблема?
Для учебы я подняли vds на vscale.io За 400 руб.
Поднимать еще один образ для учебы, для реестра образов докера - уже напряжно.
Вопрос: как поднять на одной виртуальной машине всё?
И реестр, и всё, остальное?
Дмитрий Елисеев
Можно поднять реестр на 5000 порту и везде использовать REGISTRY=site.com:5000
Либо использовать любой сторонний реестр на бесплатном тарифе.
Алексей
Ссылки нет - использовал околонаучный метод тыка. С удовольствием поделюсь своими изысканиями, если найдете меня в скайпе по логину proctoleha
Алексей
По поводу приватного докер репозитория: в чисто учебных целях залил на гит проект, который, в числе прочего, через Ansible, разворачивает приватный докер репозиторий, в парадигме данного курса.
Вижу дожили до этого урока двое. Напишите на какой платформе вы держите разработку?
К примеру, мне удалось запустить всё под Windows.
Алексей
Снимаю шляпу. Даже примерно не представляю как можно запускать все это под виндой. У меня минт 18.3
Ruslan
Вы используете Минт как единственую ОС для пользования, или это отдельная загрузка специально для разработки? Часто из-за того , что работаю на Винде, а деплою на Линукс и возникающих проблем задумываюсь о переходе на Линукс.
Алексей
Мой ноут - это мой главный рабочий инструмент для работы - т.е. для зарабатывания денег. Поэтому linux only. Никаких игрушек, ничего лишнего. Только линукс, и никакой головной боли при разработке
В виртулке стоит windows 7, и, кстати, её образ занимает всех больше места. У меня ssd на 240 гигабайт, приходится следить :)
BATPYIIIKOB
Полгода как полностью работаю только на Ubuntu 18.04. Было нелегко :) , но со временем нашёл все аналоги нужного ПО, либо установил через Wine
Sergei
У меня тоже все под виндой встало без проблем.
Ruslan
А что вы использовали (swl, Docker descktop or ...) ?
И дошли ли вы до тестов?
Дмитрий Ориховский
У меня на mac os catalina тоже все работает:)
Ruslan
На Мас нужно много дополнительного софта и танцев с бубном, или там и из коробки работает?
Дмитрий Ориховский
Все работает почти как в линукс. Устанавливаеш Docker for mac и все норм работает.
Алекс
Сначала пробовал под windows 10 используя wsl 2, но постоянно были проблемы с быстродействием и PHPstorm ( рассинхрон файловой системы ).
в итоге перешел на убунту, полет нормальный
Konstantin
Дома на Ubuntu поднял, конечно же без проблем. На работе на windows + прокст
Ruslan
Подробнее можете рассказать?
У меня в дальнейшем на одном ПК просто перестало работать, на втором я так и не смог нормально запустить тесты.
Попробую уйти на виртуалбокс и в нем докер поднимать.
Konstantin
Windows 10 поддерживает подсистемы. Набери в store "Ubuntu". Поставь её и там работай
Konstantin
Docker в Windows 10 у меня работает только в консоли
Ruslan
Вас еще ждут разочарования. Некоторые имиджи под винду не работают (или не корректно работают) на линуксе, а в этом курсе имидж создается на хосте и деплоится в прод.
С WSL у вас будут сложности ставить Xdebug в PhpStorm.
Konstantin
Все работает одинаково, как в виде так и в линукс
Ruslan
Покажите вашу сборку. и Дойдите на ней до 11го пункта.
Ruslan
Мои трудности в этом курсе:
Мне только вчера удалось действительно всё запустить без ошибок (xdebug еще не тестил).
Алексей
У мена главная засада была с Ансамблем. Долго я его крутил, чтобы хоть чуть-чуть проникнуться
Ruslan
Я его уже год использую. Он мне и понравился тем, что записал все команды как в блокнот и расскатывай всё за пять минут. Раньше установка почтового сервера занимала пол дня, теперь с проверкой минут 10ть.
Sam
Всем доброго дня
Есть одно замечание(вопрос)
Проект размером +- 100Гб
И если пытаться его впихнуть в папку public через волюмы и там уже запускать то возникают проблемы с контекстом
а именно очень, ну очень долго создается образ
Дмитрий, большое спасибо за уроки, очень много ценной инфы, будет ли вариантов скриптов ансамбля безо всяких докеров? к примеру что бы он установил все на одну виртуалку, докер конечно крут, но если там что то отклеится, то можно очень долго ковыряться, а если к примеру надо запустить проект быстро, то можно найти много проблем, к концу урока наверное вообще пачка контейнеров будет и как искать что именно отвалилось не совсем понятно, я имею ввиду не ошибки в коде, а функционирование самого сервера.
Получится что один лог здесь, другой там не особо удобно быстро искать проблему.
Руслан
Полагаю, поднять все без докера на предустановленном сервере как раз очень просто. Автоматизация же настройки голого сервера будет зависеть от конкретной конфигурации его ОС, и всех сервисов под нее. Поэтому написать и протестировать универсальные на все случаи ansible скрипты будет сложно.
Включение организации рабочего процесса с докером для унификации local/staging/production окружений и автоматизация развертывания их конфигураций с ansible очень порадовали, огромнейший респект Дмитрию!
Забегая наперед интересует, будет ли урок по организации мониторинга работы всех контейнеров, автоматизация их перезапуска при падении (k8s etc.), а также как мониторить работу отдельных сервисов приложения (в т.ч. на использование ресурсов)? Может есть практика сливать/мониторить логи приложений со всех докеров в единый и какой-то удобный механизм его мониторить (ElasticSearch/Kibana etc.)?
Спасибо.
fedot
Ну никто не говорит о скриптах на все случае жизни, только в контексте данного мастер класса, что там у нас есть и убунту в идеале, он самый распространенный сейчас.
Не многие решаются тянуть докер на прод, да и вообще, сколько тут заняла времени установка хдебага
который работает из коробки, а если еще что то аналогичное будет нужно прикрутить, то сколько времени уйдет вообще непредсказуемо и это малость напрягает.
Дмитрий Елисеев
Такое усилие с обратным пробросом портов понадбилось только для установки Xdebug.
А так да, Docker - это другой образ жизни со своими утиллитами.
fedot
Думаю к концу курса прояснится насколько докер удобен и необходим на проде, пока особых плюсов не вижу, настроить удаленную виртуалку подключить себе гит и спокойно деплоить файлы, пока как то привычнее, все в файловой системе, никаких скрытых контейнеров, спокойно зашел куда понадобилось в данные момент и сделал свое дело.
Если куча непонятного народа работает над проектом до да, такая унификация конечно будет
сильно облегчать взаимодействие, а если всего несколько человек, которые свое дело знают,
то плюсы непонятны, кучу доп инфы поднимать нужно, что бы разобраться, а где время брать и окупится ли такое его вложение.
И если нода добавится, как с ней будет вообще непонятно, там куча модулей сборщиков и прочих утилит.
Дмитрий Елисеев
Забегая наперед интересует, будет ли урок по организации мониторинга работы всех контейнеров, автоматизация их перезапуска при падении.
Они и сейчас перезапускаются с restart: always. Продвинутее с health checks будет при использовании Docker Swarm и K8s.
А также как мониторить работу отдельных сервисов приложения (в т.ч. на использование ресурсов)
Для этого как раз используют ElasticSearch и Kibana с различными Beats для сбора статистики.
Может есть практика сливать/мониторить логи приложений со всех докеров в единый и какой-то удобный механизм его мониторить?
Аналогично через Logstash и подобные агенты собирают все логи в ElasticSearch для Kibana.
У вас в create_certbot идет установка из ppa:certbot/certbot, у Дмитрия из deb ftp.debian.org/debian buster-backports main. В чем принципиальная разница? И есть ли она.
Небольшое наблюдение: на самом деле я пытался вручную без плейбуков добавить репозитории как у Дмитрия, потом сделать установку certbot, начинал ругаться на верификацию потом, когда пытался сделать apt-get update и дальнейшие действия прекращались
Алексей
ppa:certbot - это репы для убунты
buster-backports - для debian
Bondarenko Alexandr
Добрый день! Планируется ли снять ролик о деплое динамических окружений (каждая фича развертывается на своем поддомене)? Было бы очень здорово и актуально.
Дмитрий Елисеев
Это сложнее, но редко нужно. Проще сделать develop ветку с поддоменом и фичи мержить в неё.
Если нужно посмотреть работу фичи, то можно просто перейти по git checkout на ветку и запустить make init локально. А при работе по подходу с Feature Toggles разработка фич ведётся без ответвлений прямо в основной ветке.
А вообще поддомены можно включить добавлением A-записи * к домену. Либо использовать один тестовый поддомен и сертификат и просто поднимать фичи на разных портах, вычисляемых по имени ветки.
Александр
Очень полезный был бы урок по стратегиях записи и сбора логов, да и про elk стек вцелом, как инструмента.
Роман
Про xdebug - супер! Особенно такой интересный трюк с host.docker.internal. Очень познавательно, если разработка через докер затрагивает также и участников на винде и маке. Спасибо!
Sergei
Я иногда в шоке, как вы вообще добираетесь до таких мелочей, дополнительные сетевые слои у винды/мака, первый IP всегда шлюз, установить в конфиге серверное имя, чтобы его шторм мог по имени отлавливать. Тут вообще черный пояс по докеру и шторму. Вы там похоже в документациях ночуете :)
Только какая роль дебаг плагина в хроме? Куда он запросы шлет? Если у нас php-fpm отправляет инфу из контейнера в наружу.
Дмитрий Елисеев
Вы там похоже в документациях ночуете :)
Приходится :)
Только какая роль дебаг плагина в хроме?
Плагин просто ко всем запросам из браузера добавляет маркерную куку XDEBUG_SESSION со значением из его настроек. Её видит Xdebug в php-fpm, включается и подключается оттуда к PhpStorm по адресу <phpstorm_ip>:9000 из remote_host и remote_port.
Sergei
Спасибо!
Ruslan
Я дошел до этого момента и скажу, что по моим наблюдениям Докер под Windows работает как-то по другому.
У меня сейчас Docker Desktop Edge 2.1 под WSL2.
Странность в том , что если я применяю наш патч-скрипт для унификации, то контейнеры отваливаются. Я стал смотреть адреса не устанавливая патча:
Столкнулся с проблемой, что phpstrom не видит установленного xdebug во вкладке cli interpreters, когда настраиваю интерпретатор из докера. Само расширение установил, докер файлы один в один с вашими, но на этапе настройки интерпретатора xdebug не видится, дальше, соответственно, тоже - отладка не запускается.
Илья
Забыл добавить: версия php тоже не определяется. PHP version: Not installed, Debugger: Not installed. Но контейнер то он определил и cli работает корректно
Илья
Решил вопрос сменой источника интерпретатора: поменял docker-compose на docker, и версии определились. Dockre-compose почему-то не работает корректно.
Ruslan
Вы же понимаете, что это почти обертка. У вас что-то в композере ни так установлено. (ИХМО)
Александр
Такая же проблема ни php ни debuger не определяется в api-php-cli , код взял с комитта - Configured API web debug 24.12.2019
Александр
тоже помог вариант - поменял docker-compose на docker,
Дмитрий Елисеев
Чтобы применились все изменения из докерфайлов нужно не забывать пересобирать образы и перезапускать контейнеры вызовом docker-compose up --build d
elmut
Соединение не было установлено. Возможно, 'xdebug.remote_host = docker.for.win.localhost' неправильный
решение
это связано с тем, что в Docker в варианте Toolbox для Windows заполнитель docker.for.win.localhost не заполнен. Таким образом, IP-адрес компьютера PHPStorm должен быть установлен вручную.
Чтобы сделать это, вы вручную устанавливаете значение xdebug.remote_host равным 192.168.99.1 (IP Docker устанавливает для хоста, может изменять) параметры интерпретатора cli:
Ура заработало после 3 дней.
Сергей
У меня тоже похожая ошибка.
Connection was not established. Probably xdebug.remote_host=host.docker.internal is incorrect. macOS Catalina
Когда делаю пинг
docker-compose exec api-php-fpm ping host.docker.internal
PING host.docker.internal (192.168.65.2): 56 data bytes
64 bytes from 192.168.65.2: seq=0 ttl=37 time=0.336 ms
64 bytes from 192.168.65.2: seq=1 ttl=37 time=0.873 ms
64 bytes from 192.168.65.2: seq=2 ttl=37 time=0.689 ms
64 bytes from 192.168.65.2: seq=3 ttl=37 time=0.502 ms
--- host.docker.internal ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.336/0.600/0.873 ms
адрес не докера, а локальный почему-то : (
Сергей
В /etc/hosts ничего не прописалось
Олег
Приветсвую. Смогли решить проблему? Такая же ситуация с маком
На оф сайте PhpStrom такой вопрос поднимался, говорят прописать remote_host=docker.for.mac.host.internal, но к сожалению не помогает
Сергей
Нет, пока не смог : ( Пробовал такое же.
Олег
Поискав инфу на куче форумов удалось завести дебагер на Mac.
я добавил данные параметры в api/docker/development/php/conf.d/xdebug.ini
2) create a new network alias on your host machine:
sudo ifconfig lo0 alias 10.254.254.254
тут как есть
3) потом я пересобрал контейнеры запустив make init
4) залез в api/bin/app.php, поставил точку останова, запустил дебагер. Он поругался что remote_host=...блабла. В сплывшем окне нажал на "изменить remote_host" и указал 10.254.254.254
И дебагер заработал
Честно сказать до конца не разобрался, в чем причина
вот такая инфа есть на оф документации докера. что то у них там не так с сетью на маках.
Может @Дмитрий знает и сможешь подсказать
Недавно пересел с убунты на мак, и как то всё не так привычно и не так гладко)
Олег
короче надо было смотреть видео до конца, а я сразу полез на форумы, как что то пошло не так.
а оказывается Дмитрий все рассказал далее
Дмитрий, спасибо!
Сергей
Видимо я невнимательно слушал, я попробую, спасибо! А почему хост такой? Он разве не динамический?
elmut
Docker Quickstart Terminal for windows 10
php-fpm:
container_name: php-fpm # Назовем свой контейнер по красивому
build: # Билдим с помощью dockerfile указав директорию где он лежит
context: ./docker/App
dockerfile: development/php-fpm/Dockerfile
volumes: # Проброс папок
- ./App:/app
depends_on: # Укажем зависимости
- redis
- mailer
- centrifugo
- postgres
- rabbitmq
extra_hosts:
- " host.docker.internal: 192.168.99.1 "
environment:
APP_ENV: dev
APP_DEBUG: 1
XDEBUG_CONFIG: remote_host=192.168.99.1
PHP_IDE_CONFIG: "serverName=APP"
networks:
- web_frontend
bogdan
супер. спасибо! как раз разобрана трабла с дебаггером на маке
Алексей
Добрый день!
В настройках проекта в PhpStorm не получается установить соединение с докером, пишет
"Отказано в доступе /var/run/docker.sock".
Получается только соединиться если шторм запускать из-под рута. Подскажите, пожалуйста, что я делаю не так?
Дмитрий Елисеев
Чтобы с Docker работать не от root нужно своего пользователя добавить в его группу:
sudo usermod -aG docker $USER
Алексей
Спасибо большое!
Ярослав
Когда я правой клавишей мыши нажимаю на app.php в директории bin, затем на Debug 'app.php (Php Script)', то не идет соединение с xdebug. Его версия обновилась до третьей и ini-настройки нужно указывать уже другие.
Я указал такие:
Система: Linux Mint 20. Интерпретатор PHP определяется нормально.
Дмитрий Елисеев
Обновление мы рассмотрели в 44-ом эпизоде.
Алескандр
А как дебажить ajax запросы из контейнера с нодой к контейнеру с php-fpm? Там другой порт, поэтому куки, которые устанавливает ХDebug Helper не посылаются. Простой вариант: отказаться от хелпера, а сделать
xdebug.remote_autostart = 1, но тогда дебагер будет дергаться на каждый чих
Дмитрий Елисеев
Например, можно по условию во все Ajax-запросы примешивать параметр ?XDEBUG_SESSION_START=1
Ruslan
Кому интересно, или кто только начал изучать этот курс.
Год назад была проблема с VirtualBox и Hyper-V, вместе они не уживались на одной машине (при одной загрузке).
Сейчас всё работает как надо. :)
Дмитрий
Дмитрий, подскажите, пожалуйста, мне, новичку, как настроить связку Xdebug PhpStorm Docker Yii2 для дебага например такой консольной команды
docker-compose run --rm php-7.3 php site.local/yii test/a
Команда работает.
Но не ловятся брейкпоинты проставленные в actionA в контроллере TestController .
В видео уроке показан запуск отдельного php скрипта. Так работает. Но вот дебаг консольных контроллеров yii2 в папке commands не работает.
Спасибо.
Дмитрий Елисеев
Чтобы запускать вручную нужно самому в консоли устанавливать параметры отладки как в примерах для Xdebug 3 здесь вроде:
docker-compose run --rm php-7.3 php -dxdebug.mode=debug yii test/a
или:
docker-compose run --rm php-7.3 sh -c 'XDEBUG_CONFIG="debug.mode=debug" php yii test/a'
Максим
Начиная с Docker 20.10 для работы host.docker.internal в линукc.
Можно запускать контейнер с параметром --add-host=host.docker.internal:host-gateway
спасибо
Как всегда все отлично! Но.
-- Для локальной разработки я все-таки предпочитаю оф. образ php:7.4-fpm, не alpine. Это чисто мое личное предпочтение
-- А команды ip в нем нет почему то. Т.е.
вылетает с ошибкой
Поэтому мне, лично, кажется более предпочтительным вариант с явной настройкой сети
И явной передачей параметров для xdebug в docker-compose.yml файле
Но тут как раз тот случай когда на вкус и цвет все фломастеры разные :)
Я так понял, вы приватный докер реджестри установили. Каким мануалом пользовались, ссылкой не поделитесь?
Пример был в комментарии.
Дмитрий, еще раз огромный респект за уроки, но мне всё таки пришлось закостылить после внимательного изучения Ваших эпизодов.
В чем проблема?
Для учебы я подняли vds на vscale.io За 400 руб.
Поднимать еще один образ для учебы, для реестра образов докера - уже напряжно.
Вопрос: как поднять на одной виртуальной машине всё?
И реестр, и всё, остальное?
Можно поднять реестр на 5000 порту и везде использовать REGISTRY=site.com:5000
Либо использовать любой сторонний реестр на бесплатном тарифе.
Ссылки нет - использовал околонаучный метод тыка. С удовольствием поделюсь своими изысканиями, если найдете меня в скайпе по логину proctoleha
По поводу приватного докер репозитория: в чисто учебных целях залил на гит проект, который, в числе прочего, через Ansible, разворачивает приватный докер репозиторий, в парадигме данного курса.
https://github.com/ale10257/ansible-playbook-with-docer-registry
Вижу дожили до этого урока двое. Напишите на какой платформе вы держите разработку?
К примеру, мне удалось запустить всё под Windows.
Снимаю шляпу. Даже примерно не представляю как можно запускать все это под виндой. У меня минт 18.3
Вы используете Минт как единственую ОС для пользования, или это отдельная загрузка специально для разработки? Часто из-за того , что работаю на Винде, а деплою на Линукс и возникающих проблем задумываюсь о переходе на Линукс.
Мой ноут - это мой главный рабочий инструмент для работы - т.е. для зарабатывания денег. Поэтому linux only. Никаких игрушек, ничего лишнего. Только линукс, и никакой головной боли при разработке
В виртулке стоит windows 7, и, кстати, её образ занимает всех больше места. У меня ssd на 240 гигабайт, приходится следить :)
Полгода как полностью работаю только на Ubuntu 18.04. Было нелегко :) , но со временем нашёл все аналоги нужного ПО, либо установил через Wine
У меня тоже все под виндой встало без проблем.
А что вы использовали (swl, Docker descktop or ...) ? И дошли ли вы до тестов?
У меня на mac os catalina тоже все работает:)
На Мас нужно много дополнительного софта и танцев с бубном, или там и из коробки работает?
Все работает почти как в линукс. Устанавливаеш Docker for mac и все норм работает.
Сначала пробовал под windows 10 используя wsl 2, но постоянно были проблемы с быстродействием и PHPstorm ( рассинхрон файловой системы ). в итоге перешел на убунту, полет нормальный
Дома на Ubuntu поднял, конечно же без проблем. На работе на windows + прокст
Подробнее можете рассказать? У меня в дальнейшем на одном ПК просто перестало работать, на втором я так и не смог нормально запустить тесты. Попробую уйти на виртуалбокс и в нем докер поднимать.
Windows 10 поддерживает подсистемы. Набери в store "Ubuntu". Поставь её и там работай
Docker в Windows 10 у меня работает только в консоли
Вас еще ждут разочарования. Некоторые имиджи под винду не работают (или не корректно работают) на линуксе, а в этом курсе имидж создается на хосте и деплоится в прод.
С WSL у вас будут сложности ставить Xdebug в PhpStorm.
Все работает одинаково, как в виде так и в линукс
Покажите вашу сборку. и Дойдите на ней до 11го пункта.
Мои трудности в этом курсе: Мне только вчера удалось действительно всё запустить без ошибок (xdebug еще не тестил).
У мена главная засада была с Ансамблем. Долго я его крутил, чтобы хоть чуть-чуть проникнуться
Я его уже год использую. Он мне и понравился тем, что записал все команды как в блокнот и расскатывай всё за пять минут. Раньше установка почтового сервера занимала пол дня, теперь с проверкой минут 10ть.
Всем доброго дня
Есть одно замечание(вопрос) Проект размером +- 100Гб И если пытаться его впихнуть в папку public через волюмы и там уже запускать то возникают проблемы с контекстом а именно очень, ну очень долго создается образ
решается добавлением файла .dockerignore
вот образ построенный по вашим урокам. https://github.com/samwolf1982/nginx-php_fpm-redis-msql-starter_docker
100Гб это ресурсы какие-то. И вы делаете COPY , а не VOLUME?
обычный проект, сайт-магазин, куча фото делал не COPY.
Фото желательно на отдельном сервере держать
Дмитрий, большое спасибо за уроки, очень много ценной инфы, будет ли вариантов скриптов ансамбля безо всяких докеров? к примеру что бы он установил все на одну виртуалку, докер конечно крут, но если там что то отклеится, то можно очень долго ковыряться, а если к примеру надо запустить проект быстро, то можно найти много проблем, к концу урока наверное вообще пачка контейнеров будет и как искать что именно отвалилось не совсем понятно, я имею ввиду не ошибки в коде, а функционирование самого сервера.
Получится что один лог здесь, другой там не особо удобно быстро искать проблему.
Полагаю, поднять все без докера на предустановленном сервере как раз очень просто. Автоматизация же настройки голого сервера будет зависеть от конкретной конфигурации его ОС, и всех сервисов под нее. Поэтому написать и протестировать универсальные на все случаи ansible скрипты будет сложно.
Включение организации рабочего процесса с докером для унификации local/staging/production окружений и автоматизация развертывания их конфигураций с ansible очень порадовали, огромнейший респект Дмитрию!
Забегая наперед интересует, будет ли урок по организации мониторинга работы всех контейнеров, автоматизация их перезапуска при падении (k8s etc.), а также как мониторить работу отдельных сервисов приложения (в т.ч. на использование ресурсов)? Может есть практика сливать/мониторить логи приложений со всех докеров в единый и какой-то удобный механизм его мониторить (ElasticSearch/Kibana etc.)?
Спасибо.
Ну никто не говорит о скриптах на все случае жизни, только в контексте данного мастер класса, что там у нас есть и убунту в идеале, он самый распространенный сейчас. Не многие решаются тянуть докер на прод, да и вообще, сколько тут заняла времени установка хдебага который работает из коробки, а если еще что то аналогичное будет нужно прикрутить, то сколько времени уйдет вообще непредсказуемо и это малость напрягает.
Такое усилие с обратным пробросом портов понадбилось только для установки Xdebug.
А так да, Docker - это другой образ жизни со своими утиллитами.
Думаю к концу курса прояснится насколько докер удобен и необходим на проде, пока особых плюсов не вижу, настроить удаленную виртуалку подключить себе гит и спокойно деплоить файлы, пока как то привычнее, все в файловой системе, никаких скрытых контейнеров, спокойно зашел куда понадобилось в данные момент и сделал свое дело. Если куча непонятного народа работает над проектом до да, такая унификация конечно будет сильно облегчать взаимодействие, а если всего несколько человек, которые свое дело знают, то плюсы непонятны, кучу доп инфы поднимать нужно, что бы разобраться, а где время брать и окупится ли такое его вложение. И если нода добавится, как с ней будет вообще непонятно, там куча модулей сборщиков и прочих утилит.
Они и сейчас перезапускаются с restart: always. Продвинутее с health checks будет при использовании Docker Swarm и K8s.
Для этого как раз используют ElasticSearch и Kibana с различными Beats для сбора статистики.
Аналогично через Logstash и подобные агенты собирают все логи в ElasticSearch для Kibana.
Смотрим: https://github.com/ale10257/Ansible-playbooks-LEMP-on-Ubuntu-18.04
Что непонятно - спрашиваем
Большое спасибо, то что надо
У вас в create_certbot идет установка из
ppa:certbot/certbot
, у Дмитрия изdeb ftp.debian.org/debian buster-backports main
. В чем принципиальная разница? И есть ли она.Небольшое наблюдение: на самом деле я пытался вручную без плейбуков добавить репозитории как у Дмитрия, потом сделать установку certbot, начинал ругаться на верификацию потом, когда пытался сделать
apt-get update
и дальнейшие действия прекращалисьppa:certbot - это репы для убунты
buster-backports - для debian
Добрый день! Планируется ли снять ролик о деплое динамических окружений (каждая фича развертывается на своем поддомене)? Было бы очень здорово и актуально.
Это сложнее, но редко нужно. Проще сделать develop ветку с поддоменом и фичи мержить в неё.
Если нужно посмотреть работу фичи, то можно просто перейти по git checkout на ветку и запустить make init локально. А при работе по подходу с Feature Toggles разработка фич ведётся без ответвлений прямо в основной ветке.
А вообще поддомены можно включить добавлением A-записи
*
к домену. Либо использовать один тестовый поддомен и сертификат и просто поднимать фичи на разных портах, вычисляемых по имени ветки.Очень полезный был бы урок по стратегиях записи и сбора логов, да и про elk стек вцелом, как инструмента.
Про xdebug - супер! Особенно такой интересный трюк с host.docker.internal. Очень познавательно, если разработка через докер затрагивает также и участников на винде и маке. Спасибо!
Я иногда в шоке, как вы вообще добираетесь до таких мелочей, дополнительные сетевые слои у винды/мака, первый IP всегда шлюз, установить в конфиге серверное имя, чтобы его шторм мог по имени отлавливать. Тут вообще черный пояс по докеру и шторму. Вы там похоже в документациях ночуете :) Только какая роль дебаг плагина в хроме? Куда он запросы шлет? Если у нас php-fpm отправляет инфу из контейнера в наружу.
Приходится :)
Плагин просто ко всем запросам из браузера добавляет маркерную куку
XDEBUG_SESSION
со значением из его настроек. Её видит Xdebug в php-fpm, включается и подключается оттуда к PhpStorm по адресу<phpstorm_ip>:9000
из remote_host и remote_port.Спасибо!
Я дошел до этого момента и скажу, что по моим наблюдениям Докер под Windows работает как-то по другому.
У меня сейчас Docker Desktop Edge 2.1 под WSL2.
Странность в том , что если я применяю наш патч-скрипт для унификации, то контейнеры отваливаются. Я стал смотреть адреса не устанавливая патча:
Если смотреть из виндовс консоли, то :
А если :
ipconfig на хост машине:
а такой сети нет 192.168.65.0
Как тогда это всё общается?
Да, у нового подхода с WSL свои нюансы. Можете поисследовать в своей системе, как они там общаются в новом варианте виртуализации.
192.168.99.1
http://sebastianviereck.de/en/docker-xdebug-remote_host-setzen-toolbox-fuer-phpstorm/
Столкнулся с проблемой, что phpstrom не видит установленного xdebug во вкладке cli interpreters, когда настраиваю интерпретатор из докера. Само расширение установил, докер файлы один в один с вашими, но на этапе настройки интерпретатора xdebug не видится, дальше, соответственно, тоже - отладка не запускается.
Забыл добавить: версия php тоже не определяется. PHP version: Not installed, Debugger: Not installed. Но контейнер то он определил и cli работает корректно
Решил вопрос сменой источника интерпретатора: поменял docker-compose на docker, и версии определились. Dockre-compose почему-то не работает корректно.
Вы же понимаете, что это почти обертка. У вас что-то в композере ни так установлено. (ИХМО)
Такая же проблема ни php ни debuger не определяется в api-php-cli , код взял с комитта - Configured API web debug 24.12.2019
тоже помог вариант - поменял docker-compose на docker,
Чтобы применились все изменения из докерфайлов нужно не забывать пересобирать образы и перезапускать контейнеры вызовом
docker-compose up --build d
Соединение не было установлено. Возможно, 'xdebug.remote_host = docker.for.win.localhost' неправильный решение
это связано с тем, что в Docker в варианте Toolbox для Windows заполнитель docker.for.win.localhost не заполнен. Таким образом, IP-адрес компьютера PHPStorm должен быть установлен вручную.
Чтобы сделать это, вы вручную устанавливаете значение xdebug.remote_host равным 192.168.99.1 (IP Docker устанавливает для хоста, может изменять) параметры интерпретатора cli:
Ура заработало после 3 дней.
У меня тоже похожая ошибка. Connection was not established. Probably
xdebug.remote_host=host.docker.internal
is incorrect. macOS Catalina Когда делаю пингадрес не докера, а локальный почему-то : (
В /etc/hosts ничего не прописалось
Приветсвую. Смогли решить проблему? Такая же ситуация с маком На оф сайте PhpStrom такой вопрос поднимался, говорят прописать remote_host=docker.for.mac.host.internal, но к сожалению не помогает
Нет, пока не смог : ( Пробовал такое же.
Поискав инфу на куче форумов удалось завести дебагер на Mac.
1) add into .docksal/etc/php/php.ini: [xdebug] xdebug.remote_connect_back = 0 xdebug.idekey = "PHPSTORM" xdebug.remote_host = 10.254.254.254
я добавил данные параметры в api/docker/development/php/conf.d/xdebug.ini
2) create a new network alias on your host machine: sudo ifconfig lo0 alias 10.254.254.254
тут как есть
3) потом я пересобрал контейнеры запустив make init
4) залез в api/bin/app.php, поставил точку останова, запустил дебагер. Он поругался что remote_host=...блабла. В сплывшем окне нажал на "изменить remote_host" и указал 10.254.254.254
И дебагер заработал
Честно сказать до конца не разобрался, в чем причина
https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos
вот такая инфа есть на оф документации докера. что то у них там не так с сетью на маках. Может @Дмитрий знает и сможешь подсказать
Недавно пересел с убунты на мак, и как то всё не так привычно и не так гладко)
короче надо было смотреть видео до конца, а я сразу полез на форумы, как что то пошло не так. а оказывается Дмитрий все рассказал далее Дмитрий, спасибо!
Видимо я невнимательно слушал, я попробую, спасибо! А почему хост такой? Он разве не динамический?
Docker Quickstart Terminal for windows 10
супер. спасибо! как раз разобрана трабла с дебаггером на маке
Добрый день! В настройках проекта в PhpStorm не получается установить соединение с докером, пишет "Отказано в доступе /var/run/docker.sock". Получается только соединиться если шторм запускать из-под рута. Подскажите, пожалуйста, что я делаю не так?
Чтобы с Docker работать не от root нужно своего пользователя добавить в его группу:
Спасибо большое!
Когда я правой клавишей мыши нажимаю на app.php в директории bin, затем на Debug 'app.php (Php Script)', то не идет соединение с xdebug. Его версия обновилась до третьей и ini-настройки нужно указывать уже другие. Я указал такие:
Но пока безрезультатно. В шторме пишет:
Connection was not established. Cannot start debugger session with 'Xdebug 3.0.2'.
Система: Linux Mint 20. Интерпретатор PHP определяется нормально.
Обновление мы рассмотрели в 44-ом эпизоде.
А как дебажить ajax запросы из контейнера с нодой к контейнеру с php-fpm? Там другой порт, поэтому куки, которые устанавливает ХDebug Helper не посылаются. Простой вариант: отказаться от хелпера, а сделать xdebug.remote_autostart = 1, но тогда дебагер будет дергаться на каждый чих
Например, можно по условию во все Ajax-запросы примешивать параметр
?XDEBUG_SESSION_START=1
Кому интересно, или кто только начал изучать этот курс. Год назад была проблема с VirtualBox и Hyper-V, вместе они не уживались на одной машине (при одной загрузке). Сейчас всё работает как надо. :)
Дмитрий, подскажите, пожалуйста, мне, новичку, как настроить связку Xdebug PhpStorm Docker Yii2 для дебага например такой консольной команды
Команда работает.
Но не ловятся брейкпоинты проставленные в actionA в контроллере TestController .
В видео уроке показан запуск отдельного php скрипта. Так работает. Но вот дебаг консольных контроллеров yii2 в папке commands не работает.
Спасибо.
Чтобы запускать вручную нужно самому в консоли устанавливать параметры отладки как в примерах для Xdebug 3 здесь вроде:
или:
Начиная с Docker 20.10 для работы host.docker.internal в линукc.
Можно запускать контейнер с параметром --add-host=host.docker.internal:host-gateway
или:
В docker-compose для сервиса (php-fpm) прописать
Это обновит файл /etc/hosts автоматически и привяжет шлюз к имени host.docker.internal
https://stackoverflow.com/a/43541732
Или войти через: