Как прокинуть подключение mysql и nodejs в одном docker compose?

Для прокидывания подключения MySQL и Node.js в одном Docker Compose, вам потребуется создать два сервиса - один для базы данных MySQL и второй для вашего приложения Node.js.

Вот пример вашего docker-compose.yml файла:

version: '3'
services:
  mysql:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database_name
      MYSQL_USER: your_mysql_user
      MYSQL_PASSWORD: your_mysql_password
    ports:
      - 3306:3306

  nodejs:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - mysql
    ports:
      - 3000:3000
    environment:
      MYSQL_HOST: mysql
      MYSQL_PORT: 3306
      MYSQL_USER: your_mysql_user
      MYSQL_PASSWORD: your_mysql_password
      MYSQL_DATABASE: your_database_name

В сервисе MySQL мы используем официальный Docker образ MySQL и задаем переменные окружения, такие как пароль для root пользователя, имя базы данных, имя пользователя и пароль для пользователя MySQL. Мы также пробрасываем порт 3306, чтобы можно было подключиться к базе данных извне контейнера.

В сервисе Node.js мы использовали сборку образа, используя Dockerfile, который находится в том же каталоге, что и файл docker-compose.yml. Мы также указали зависимость от сервиса MySQL, чтобы убедиться, что он запустится перед контейнером Node.js.

Мы пробрасываем порт 3000, чтобы можно было получить доступ к вашему приложению Node.js извне контейнера. Также мы задаем переменные окружения для подключения к базе данных MySQL. Обратите внимание, что переменные окружения MYSQL_HOST и MYSQL_PORT должны быть аналогичными значениям, указанным в сервисе MySQL.

После создания файла docker-compose.yml, вы можете запустить контейнеры, выполнив следующую команду в терминале:

docker-compose up

Это запустит и сконфигурирует все сервисы, указанные в файле docker-compose.yml.

Теперь вы можете подключиться к вашему приложению Node.js на порту 3000 и использовать подключение к MySQL, указав хост mysql, порт 3306 и соответствующие значения для имени пользователя, пароля и базы данных, как указано в переменных окружения в файле docker-compose.yml.

Надеюсь, это поможет вам развернуть ваше приложение Node.js с подключением к MySQL с использованием Docker и Docker Compose.