Pull to refresh

Comments 10

Еще бы осветить настройку проксирования с фронта на бэк. Когда на на фронте не голый nginx, а что-то вроде react-vue-etc, то возникают некоторые неочевидные тонкости.

При описании nginx docker-compose файла, у блока network неправильный уровень вложенности(хотя в конечно варианте все ок), подправьте.

Не совсем разобрался зачем присваиваются статические адреса контейнерам?

Привет!

Если у контейнера не статический ip. То:
Когда контейнер пересобирается (Например: необходимо открыть новые порты) ip адрес может измениться, после чего необходимо будет заново настраивать проксирование в nginx, либо указывать новый ip адрес в коде площадки. Все это время площадка будет возвращать ошибку, пока не будет указан новый ip адрес. Также, при переносе на другой сервер ip адреса будут всегда разные и из-за этого необходимо будет всегда править конфигурационные файлы и вписывать правильный ip адрес. Для того, чтоб контейнеры, сервисы могли между собой общаться.
Этого всего можно избежать, просто указав статический ip адрес. После чего у контейнера всегда будет один и тот же ip даже если перенести его на другой сервер. Это очень удобно!

Мне кажется вы можете обращаться внутри по имени контейнера. Внешнее подключение от него на зависит, так как у вас проброс портов во внешнюю сеть через NAT -ports:

В ситуации в которой вам надо поменять подсеть в случае пересечения по тем или иным причинам, то придётся только сменить определение сети

Да, все верно можно так делать.

Но, по нашему опыту обучения стажеров. Лучше на первых этапах обучения работать именно с ip адресами. Для того, чтоб понять весь смысл работы docker.

Вы же наоборот ушли от докер фишки(обращение по имени контейнеров), чтобы в явном виде видеть сетевое взаимодействие сервисов указывая такие статические ip в конфигах сервисов.

Если так, то обоснование было бы:

"Для того, чтоб не терять понимания сетевого взаимодействия сервисов"?

У вас изначально в структуре проекта есть конфиг для MySQL в файле:

./app/volumes/etc/mysql/config-file.cnf

Однако в контейнер вы уже монтируете:

./volumes/mysql/conf.d:/etc/mysql/conf.d:ro

Я что-то недопонял или опечатка?

Sign up to leave a comment.