У меня есть приложение 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
?
Попробуйте "host": "db"
вместо localhost. Docker-compose использует имя службы как свою запись DNS
db
как вы сказали, а также я изменил db на mariadb, и теперь все в порядке;)