javascript - NestJS bir istek aldığında takılıyor. Docker donuyor ve konteyneri durdurmak, öldürmek veya kaldırmak mümkün olmuyor


Bağlam: NestJS, docker ortamında veritabanı (mysql) ve redis konteynerleri ile birlikte çalışıyor. Aynı kod tabanının iki konteyner olarak çalıştırıldığı iki ayrı konteyner var: app ve worker.

Mevcut Paket JSON

{
    "name": "backend",
    "version": "0.0.1",
    "description": "",
    "author": "",
    "private": true,
    "license": "UNLICENSED",
    "scripts": {
        "prebuild": "rimraf dist",
        "build": "nest build",
        "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
        "start": "nest start",
        "start:dev:core": "nest start --watch",
        "start:dev:worker": "nest start --config nest-cli-worker.json --watch",
        "start:debug": "nest start --debug --watch",
        "start:prod:core": "pm2-runtime start pm2.yaml --env production --node-args='-r newrelic'",
        "start:prod:worker": "pm2-runtime start pm2-worker.yaml --env production",
        "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
        "test": "jest",
        "test:watch": "jest --watch",
        "test:cov": "jest --coverage",
        "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
        "test:e2e": "NODE_ENV='test' jest --config ./test/jest-e2e.json --detectOpenHandles",
        "pm2:delete": "pm2 delete adxl-app"
    },
    "dependencies": {
        "@casl/ability": "^6.3.3",
        "@golevelup/ts-jest": "^0.3.3",
        "@googleapis/content": "^11.0.0",
        "@googlemaps/google-maps-services-js": "^3.3.26",
        "@mikro-orm/cli": "^5.7.4",
        "@mikro-orm/core": "^5.7.4",
        "@mikro-orm/migrations": "^5.7.4",
        "@mikro-orm/mysql": "^5.7.4",
        "@mikro-orm/nestjs": "^5.1.8",
        "@mikro-orm/reflection": "^5.7.4",
        "@mikro-orm/seeder": "^5.7.4",
        "@nestjs-modules/mailer": "^1.6.1",
        "@nestjs/axios": "2.0.0",
        "@nestjs/bull": "^0.5.4",
        "@nestjs/common": "^8.0.0",
        "@nestjs/config": "^2.3.1",
        "@nestjs/core": "^8.0.0",
        "@nestjs/event-emitter": "^1.1.1",
        "@nestjs/jwt": "^8.0.0",
        "@nestjs/mapped-types": "*",
        "@nestjs/passport": "^8.2.1",
        "@nestjs/platform-express": "^8.0.0",
        "@nestjs/schedule": "^2.0.1",
        "@nestjs/throttler": "^3.1.0",
        "@nestlab/google-recaptcha": "^3.3.0",
        "@types/lodash": "^4.14.184",
        "@types/newrelic": "^9.7.0",
        "aws-sdk": "^2.1085.0",
        "bcrypt": "^5.0.1",
        "body-parser": "^1.19.2",
        "buffer": "^6.0.3",
        "bull": "^4.8.1",
        "cheerio": "^1.0.0-rc.11",
        "class-transformer": "^0.5.1",
        "class-validator": "^0.13.2",
        "compression": "^1.7.4",
        "cookie-parser": "^1.4.6",
        "csv-parse": "^5.3.3",
        "fluent-ffmpeg": "^2.1.2",
        "form-data": "^4.0.0",
        "google-ads-api": "^12.0.1",
        "handlebars": "^4.7.7",
        "ioredis": "^5.2.3",
        "js-sha256": "^0.9.0",
        "json2csv": "^5.0.7",
        "lodash": "^4.17.21",
        "md5": "^2.3.0",
        "moment": "^2.29.1",
        "moment-timezone": "^0.5.34",
        "ncsrf": "^1.0.3",
        "nest-commander": "^2.5.0",
        "nest-winston": "^1.8.0",
        "nestjs-stripe": "^1.0.0",
        "nestjs-twilio": "^2.2.1",
        "newrelic": "^9.7.0",
        "node-fetch": "^2.6.7",
        "nodemailer": "^6.7.5",
        "oauth-1.0a": "^2.2.6",
        "openai": "^3.2.1",
        "passport": "^0.5.2",
        "passport-jwt": "^4.0.0",
        "passport-local": "^1.0.0",
        "pexels": "^1.4.0",
        "pm2": "^5.2.0",
        "puppeteer": "^19.11.1",
        "pusher": "^5.1.1-beta",
        "reflect-metadata": "^0.1.13",
        "rimraf": "^3.0.2",
        "rxjs": "^7.5.4",
        "stripe": "^8.222.0",
        "ts-node": "^10.0.0",
        "twilio": "^3.77.3",
        "twitter-api-sdk": "^1.2.1",
        "uuid": "^8.3.2",
        "voucher-code-generator": "^1.3.0",
        "winston": "^3.8.2"
    },
    "devDependencies": {
        "@nestjs/cli": "^8.0.0",
        "@nestjs/schematics": "^8.0.0",
        "@nestjs/testing": "^8.0.0",
        "@types/bull": "^3.15.8",
        "@types/cookie-parser": "^1.4.2",
        "@types/cron": "^2.0.0",
        "@types/express": "^4.17.13",
        "@types/jest": "^27.0.1",
        "@types/multer": "^1.4.7",
        "@types/node": "^16.0.0",
        "@types/passport-jwt": "^3.0.6",
        "@types/passport-local": "^1.0.34",
        "@types/puppeteer": "^7.0.4",
        "@types/supertest": "^2.0.12",
        "@typescript-eslint/eslint-plugin": "^4.28.2",
        "@typescript-eslint/parser": "^4.28.2",
        "eslint": "^7.30.0",
        "eslint-config-prettier": "^8.3.0",
        "eslint-plugin-prettier": "^3.4.0",
        "jest": "^27.0.6",
        "prettier": "^2.3.2",
        "run-script-webpack-plugin": "^0.1.1",
        "supertest": "^6.3.0",
        "ts-jest": "^27.0.3",
        "ts-loader": "^9.2.3",
        "tsconfig-paths": "^3.10.1",
        "typescript": "^4.7.4",
        "webpack": "^5.75.0",
        "webpack-node-externals": "^3.0.0"
    },
    "mikro-orm": {
        "useTsNode": true,
        "configPaths": [
            "./mikro-orm.config.ts"
        ]
    },
    "jest": {
        "moduleFileExtensions": [
            "js",
            "json",
            "ts"
        ],
        "setupFiles": [
            "<rootDir>/../test/setEnvVars.ts"
        ],
        "rootDir": "src",
        "testRegex": ".*\\.spec\\.ts$",
        "transform": {
            "^.+\\.(t|j)s$": "ts-jest"
        },
        "collectCoverageFrom": [
            "**/*.(t|j)s"
        ],
        "coverageDirectory": "../coverage",
        "testEnvironment": "node"
    }
}

Uygulama aniden takılıyor ve herhangi bir hata mesajı vermiyor. Docker masaüstü sürecini sonlandırıp Docker masaüstünü yeniden başlattıktan sonra kaldırmazsam docker konteynerini durduramıyorum. Değişiklikleri yeniden yükleyemiyorum vb.

Bu mevcut tsconfig.json dosyasıdır

{
    "compilerOptions": {
        "module": "commonjs",
        "declaration": true,
        "removeComments": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowSyntheticDefaultImports": true,
        "target": "es2018",
        "sourceMap": true,
        "outDir": "./dist",
        "baseUrl": "./",
        "incremental": false,
        "skipLibCheck": true,
        "strictNullChecks": false,
        "noImplicitAny": false,
        "strictBindCallApply": false,
        "forceConsistentCasingInFileNames": false,
        "noFallthroughCasesInSwitch": false,
        "esModuleInterop": true,
        "resolveJsonModule": true,
        "typeRoots": [
            "node_modules/@types",
            "src/typings"
        ]
    },
    "watchOptions": {
        "watchFile": "fixedpollinginterval",
    }
}

Hata ayıklama günlüklerini açtım, hiçbir şey görünmüyor. Sadece takılıyor. Yeniden kurdum, Docker Desktop'u eski sürüme düşürdüm, farklı birçok WSL2 Linux dağıtımını denedim, dist klasörünü temizledim, node_modules'u sildim, tüm Docker kaynaklarını kaldırdım ve Docker imajlarını 20'den fazla kez yeniden inşa ettim.

Asıldıktan sonra, konteynerleri durduruyorum, docker-compose top yapıyorum, işte çıktı:

app
UID    PID     PPID    C    STIME   TTY   TIME       CMD
root   10926   10612   21   May04   ?     00:05:11   [node] <defunct>
root   11120   10612   1    May04   ?     00:00:19   node -r source-map-support/register --inspect /usr/src/app/dist/src/main

database
UID   PID     PPID    C    STIME   TTY   TIME       CMD
999   10338   10317   0    May04   ?     00:00:01   mysqld

worker
UID    PID     PPID    C    STIME   TTY   TIME       CMD
root   10914   10613   20   May04   ?     00:05:04   [node] <defunct>
root   11131   10613   1    May04   ?     00:00:17   node -r source-map-support/register /usr/src/app/dist/src/worker

Sebep ne olabilir? Bu sorunun nereden kaynaklandığından emin değilim.