РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcNdMyAd 36 of 39 menu
◀ ▶

Адрес базы в Docker

Адрес базы внутри проекта строится из имени сервиса, а не из localhost. Соседи обращаются к db на порту 3306, где слушает MySQL. Контейнер приложения читает имя хоста из окружения и пока лишь печатает, без открытия соединения драйвером.

Сервис db на mysql:9.7 с паролем root demo. Сервис web на node:24 получает переменную DB_HOST и коротко выводит её в консоль:

services: db: image: mysql:9.7 environment: MYSQL_ROOT_PASSWORD: demo web: image: node:24 environment: DB_HOST: db command: ["node", "-e", "console.log(process.env.DB_HOST)"]

Значение db - это имя сервиса в сети Compose, а порт 3306 зададут в коде при подключении. Пакет mysql2 для такой проверки не обязателен. Поднимем проект в фоне:

docker compose up -d

Текст имени хоста читают в логах сервиса web:

docker compose logs web

Задайте сервису api переменную DB_HOST со значением data и короткий вывод этого значения в консоль на node:24.

Поднимите проект в фоне и зафиксируйте напечатанное имя хоста в логах api.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить