Настройка порта для БД
Сейчас нет возможности подключаться к БД например из IDE, так как нет проброса порта на локальную машину.
Предлагаю в кфг docker-compose-mysql.yaml сделать параметр "port" и подставлять туда значение из .env, соответственно у каждого проекта будет доступен свой порт для подключения и они смогут существовать параллельно. Еще лучше при запуске проекта (dl up) сделать проверку на доступность данного порта (который задаем в .env), и выкидывать ошибку, что этот порт уже занят другим контейнером
На самом деле, порт 3306 пробрасывается, но только под IP контейнера. То есть можно посмотреть IP адрес контейнера с базой данных (через команду dl ps, например) и потом этот IP прописать в подключении IDE. Минус в таком подходе, IP будет меняться при каждом перезапуске контейнеров.
Я сейчас изучаю возможности traefik, умеет ли он проксировать запросы к бд, то есть хочу попробовать сделать локальный домен в качестве имени хоста к базе. Более сложным решением является запуск собственного DNS, который разрешает имена контейнеров. Но этот вариант потребует установки пакета resolvconf, то есть будет запрос на root доступ, что противоречит концепции DL.


Понял, на счет IP не додумался. Буду ждать новостей по этой теме, спасибо
Идей как сделать такое же подключение к wsl2 нет ?)
Можно просто добавить в .env параметр типа MYSQL_LOCAL_PORT, и из него брать порт для локальной машины. Сейчас просто попробовал - получилось и решил написать

Можно просто добавить в .env параметр типа MYSQL_LOCAL_PORT
Да, только если не указать MYSQL_LOCAL_PORT, то он будет по умолчанию 3306, таким образом одновременно 2 проекта уже не поднять, порт будет занят.
К сожалению, через traefik так сделать нельзя.. https://github.com/traefik/traefik/issues/5155
А есть способ проверить порт на занятость? Допустим если порт занят, то подбирать рандомный и так, пока не будет подобран свободный и показывать в результативном сообщении на каком порту доступна БД) А если порт указан в .env, и если он занят, то выкидывать ошибку и останавливать запуск контейнера