Node.js с настройкой Docker-контейнера MySQL

0

У меня есть приложение Node.js (с использованием новой инфраструктуры NestJS), работающее на порту 3000. В качестве базы данных я использую MySQL через TypeORM. Локально все работает отлично. У меня проблемы с докеризацией.

Моя конфигурация TypeORM:

{
    "type": "mysql",
    "host": "localhost",
    "port": 3306,
    "username": "root",
    "password": "root",
    "database": "nest",
    "entities": ["src/**/*.entity{.ts,.js}"],
    "synchronize": true
}

Мой docker-compose.yml выглядит следующим образом:

version: "3"
services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: nest
      MYSQL_USER: root
      MYSQL_PASSWORD: root
    networks:
      - new
  nest:
    image: grimscythe/nest-sample
    depends_on:
      - db
    ports:
      - 3000:3000
    networks:
      - new
networks:
  new:

Я читал документы по этому конкретному сценарию, и все должно работать нормально. Bash'ing в контейнере MySQL показывает, что БД работает нормально. Однако Node framework плюет Unable to connect to the database... Я что docker-compose.yml файле docker-compose.yml?

Теги:
docker
docker-compose
nestjs

1 ответ

2
Лучший ответ

Попробуйте "host": "db" вместо localhost. Docker-compose использует имя службы как свою запись DNS

  • 0
    К сожалению, это не похоже на работу.
  • 1
    Похоже, мне пришлось сменить хост на db как вы сказали, а также я изменил db на mariadb, и теперь все в порядке;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню