Nestjs / TypeORM Не удается подключиться к Docker MariaDB - PullRequest
1 голос
/ 12 марта 2019

Всякий раз, когда я запускаю свой образ докера, содержащий nodejs 11.10 & mariadb, я получаю следующую ошибку:

[Nest] 16 - 12.03.2009, 11:24:02 AM [TypeOrmModule]Невозможно подключиться к базе данных.Повторная попытка (9) ... + 3587msError: EPERM: операция не разрешена, scandir '/ proc / 1 / map_files / 559e63542000-559e656d1000' в Object.readdirSync (fs.js: 807: 3) в GlobSync._readdir (/ app /node_modules / glob / sync.js: 288: 41) в GlobSync._readdirInGlobStar (/app/node_modules/glob/sync.js:267:20) в GlobSync._readdir (/app/node_modules/glob/sync.js:276:17) в GlobSync._processReaddir (/app/node_modules/glob/sync.js:137:22) в GlobSync._process (/app/node_modules/glob/sync.js:132:10) в GlobSync._processGlobStar (/ app /node_modules / glob / sync.js: 380: 10) в GlobSync._process (/app/node_modules/glob/sync.js:130:10) в GlobSync._processGlobStar (/app/node_modules/glob/sync.js:383:10) на GlobSync._process (/app/node_modules/glob/sync.js:130:10)

Та же проблема возникает, когда я использую mysql:latest & mysql:5.6.Это мое соединение:

TypeOrmModule.forRoot({
  type: 'mariadb',
  host: '172.17.0.1',
  port: 3306,
  username: 'nest',
  password: 'secret',
  database: 'nest',
  entities: [__dirname + '/**/*.entity{.ts,.js}'],
  synchronize: true,
}),

Кто-нибудь еще когда-либо имел эту проблему, и так, знаете, как ее исправить?Спасибо!

1 Ответ

0 голосов
/ 12 марта 2019

Эта проблема возникает из-за entities: [__dirname + '/**/*.entity{.ts,.js}'],. Поскольку __dirname как-то не разрешается в каталог ваших проектов, а '', вместо этого он пытается сканировать весь диск на наличие сущностей и, очевидно, не имеет прав для этого.

Обход

Вместо сканирования сущностей, перечислите их явно:

entities: [UserEntity, ProductEntity],

Если вы используете webpack для hmr, вы также можете попробовать следующую конфигурацию для правильного разрешения __dirname:

webpack.config.js:
node: {
  __dirname: false,
},
...