«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2022/05/12 01:20:05  №2355019 1
в итоге я пытался прикрутить стандартную регистрацию на laravel/breeze. Ок, прикрутил, пытаюсь зарегистрироваться - хуйня какая-то, connection refused. Гуглю часов 6, и потом, чисто случайно, меняю DB_HOST 127.0.0.1 на mysql (имя контейнера), и, о чудо, работает. Но теперь у тебя явно вопрос - а нахуя я вообще трогал DB_HOST и поломал, но все намного интереснее - DB_HOST=127.0.0.1 выдает ошибку при попытке сделать миграцию артисаном. Да. В итоге у меня теперь интересная последовательность действий - меняю дб хост, делаю миграцию, меняю дб хост обратно. Пиздец ваш ларавель дерьмо блядь.
Ответы: >>2355082 >>2355287
Аноним 2022/05/12 13:57:40  №2355287 2
>>2355019

Контейнер докера чем-то напоминает виртуальную машину. Внутри него есть свои виртуальные сетевые карты.

Когда ты на реальной машине коннектишься к 127.0.0.1, ты можешь подсоединиться к программе, запущенной на том же компьютере. Тут 127.0.0.1 обозначает "этот компьютер".

Но в контейнере 127.0.0.1 обозначает не "эта машина", а "этот контейнер". И соответственно, ты не можешь из одного контейнера подсоединиться к другому, используя 127.0.0.1. Ты должен использовать адрес другого контейнера, как будто бы ты подоединяешься к удаленному серверу.

А если ты хочешь со своего компьютера подсоединиться к сервису внутри контейнера (например, к БД), ты тоже должен использовать IP-адрес контейнера или DNS-имя, а не 127.0.0.1

То есть, представляй себе, что каждый контейнер это как отдельный компьютер со своим адресом.