Машинопись и Docker медленная компиляция - PullRequest
2 голосов
/ 21 января 2020

Я недавно обновился до Docker 2.2.0.0 и собираю проект Typescript (3.7.5) NestJs.

Компиляция машинописного текста занимает много времени (несколько минут) при запуске в docker, но запускается локально всего несколько секунд.

Это мой tsconfig. json:

{
  "compilerOptions": {
    "module": "CommonJS",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "target": "ESNext",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "noUnusedLocals": true,
    "diagnostics": true
  },
  "include": ["src", "test"],
  "exclude": ["node_modules", "dist"]
}

Приложение зависает:

Starting compilation in watch mode.

Тогда через несколько минут он завершает сборку и сервер запускается.

Обновление:

  • Команда для компиляции / запуска: nest start --watch, которая использует tsc для компиляции приложения в режиме наблюдения .
  • Мой docker файл находится ниже:
FROM OUR-custom-docker-image

WORKDIR /app
COPY . .
RUN yarn install --production=false

EXPOSE 4200
CMD yarn db:migrate && yarn start:dev

Редактировать: - Я запускал `` как локально, так и в пределах docker, чтобы увидеть разницу во времени выполнения:

локально

Files:                       1270
Lines:                     140094
Nodes:                     516055
Identifiers:               186330
Symbols:                   775100
Types:                     255282
Memory used:              618234K
Assignability cache size:  284236
Identity cache size:          603
Subtype cache size:          1045
I/O Read time:              0.21s
Parse time:                 0.72s
Program time:               2.25s
Bind time:                  0.52s
Check time:                 7.32s
transformTime time:         0.15s
commentTime time:           0.00s
printTime time:             0.64s
Emit time:                  0.65s
Source Map time:            0.01s
I/O Write time:             0.12s
Total time:                10.74s

docker

 Files:                       1269
 Lines:                     140047
 Nodes:                     515825
 Identifiers:               186267
 Symbols:                   775022
 Types:                     255265
 Memory used:              618717K
 Assignability cache size:  284236
 Identity cache size:          603
 Subtype cache size:          1045
 I/O Read time:              1.13s
 Parse time:                 1.01s
 Program time:               5.88s
 Bind time:                  0.74s
 Check time:                 8.87s
 transformTime time:         0.21s
 commentTime time:           0.00s
 printTime time:             1.75s
 Emit time:                  1.76s
 Source Map time:            0.03s
 I/O Write time:             1.11s
 Total time:                17.25s
...