NestJs后端运行docker-compose up -d时,AppGateway初始化失败 &g



我有一个单独的应用程序后端(NestJs)和前端(AngularJs)。

在本地运行后端(嵌套启动),然后获得如下成功:

[Nest] 51995   - 21/09/2021, 11:17:00 pm   [NestFactory] Starting Nest application...
[Nest] 51995   - 21/09/2021, 11:17:00 pm   [InstanceLoader] PassportModule dependencies initialized +104ms
[Nest] 51995   - 21/09/2021, 11:17:00 pm   [InstanceLoader] HttpModule dependencies initialized +2ms
[Nest] 51995   - 21/09/2021, 11:17:00 pm   [InstanceLoader] JwtModule dependencies initialized +1ms
[Nest] 51995   - 21/09/2021, 11:17:00 pm   [InstanceLoader] HttpModule dependencies initialized +1ms
[Nest] 51995   - 21/09/2021, 11:17:00 pm   [InstanceLoader] ServeStaticModule dependencies initialized +1ms
[Nest] 51995   - 21/09/2021, 11:17:04 pm   [InstanceLoader] DatabaseModule dependencies initialized +4300ms
[Nest] 51995   - 21/09/2021, 11:17:04 pm   [InstanceLoader] AppModule dependencies initialized +7ms
[Nest] 51995   - 21/09/2021, 11:17:04 pm   [InstanceLoader] KudoModule dependencies initialized +1ms
[Nest] 51995   - 21/09/2021, 11:17:04 pm   [InstanceLoader] BlogModule dependencies initialized +2ms
[Nest] 51995   - 21/09/2021, 11:17:04 pm   [InstanceLoader] AuthModule dependencies initialized +1ms
[Nest] 51995   - 21/09/2021, 11:17:05 pm   [AppGateway] initialized
[Nest] 51995   - 21/0ee_NDN}qb#g4Zv"9/2021, 11:17:05 pm   [RoutesResolver] PostController {/api/posts}: +4ms
[Nest] 51995   - 21/09/2021, 11:17:05 pm   [RouterExplorer] Mapped {/api/posts, GET} route +4ms
[Nest] 51995   - 21/09/2021, 11:17:05 pm   [RouterExplorer] Mapped {/api/posts, POST} route +2ms

但是当使用docker-compose up -d时,出现以下错误:

backend_1  | [Nest] 32   - 09/22/2021, 5:14:05 AM   [NestFactory] Starting Nest application...
backend_1  | [Nest] 32   - 09/22/2021, 5:14:06 AM   [InstanceLoader] PassportModule dependencies initialized +1172ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:06 AM   [InstanceLoader] HttpModule dependencies initialized +1ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:06 AM   [InstanceLoader] JwtModule dependencies initialized +1ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:06 AM   [InstanceLoader] HttpModule dependencies initialized +0ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:06 AM   [InstanceLoader] ServeStaticModule dependencies initialized +2ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:07 AM   [InstanceLoader] DatabaseModule dependencies initialized +1005ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:07 AM   [InstanceLoader] AppModule dependencies initialized +8ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:07 AM   [InstanceLoader] KudoModule dependencies initialized +1ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:07 AM   [InstanceLoader] BlogModule dependencies initialized +1ms
backend_1  | [Nest] 32   - 09/22/2021, 5:14:07 AM   [InstanceLoader] AuthModule dependencies initialized +1ms
backend_1  | (node:32) UnhandledPromiseRejectionWarning: TypeError: shared_utils_1.addLeadingSlash is not a function
backend_1  |     at SocketServerProvider.validateNamespace (/app/node_modules/@nestjs/websockets/socket-server-provider.js:46:31)
backend_1  |     at SocketServerProvider.getServerOfNamespace (/app/node_modules/@nestjs/websockets/socket-server-provider.js:40:97)
backend_1  |     at SocketServerProvider.createWithNamespace (/app/node_modules/@nestjs/websockets/socket-server-provider.js:33:38)
backend_1  |     at SocketServerProvider.createSocketServer (/app/node_modules/@nestjs/websockets/socket-server-provider.js:26:21)
backend_1  |     at SocketServerProvider.scanForSocketServer (/app/node_modules/@nestjs/websockets/socket-server-provider.js:17:20)
backend_1  |     at WebSocketsController.subscribeToServerEvents (/app/node_modules/@nestjs/websockets/web-sockets-controller.js:34:60)
backend_1  |     at WebSocketsController.connectGatewayToServer (/app/node_modules/@nestjs/websockets/web-sockets-controller.js:25:14)
backend_1  |     at SocketModule.connectGatewayToServer (/app/node_modules/@nestjs/websockets/socket-module.js:46:35)
backend_1  |     at /app/node_modules/@nestjs/websockets/socket-module.js:35:38
backend_1  |     at IteratorWithOperators.forEach (/app/node_modules/@nestjs/websockets/node_modules/iterare/lib/iterate.js:157:13)
backend_1  | (Use `node --trace-warnings ...` to show where the warning was created)
backend_1  | (node:32) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
backend_1  | (node:32) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

输入图片描述

使用的NestJs版本:

"@nestjs/common": "^7.0.0",
"@nestjs/core": "^7.0.0",
"@nestjs/jwt": "^7.0.0",
"@nestjs/passport": "^7.0.0",
"@nestjs/platform-express": "^7.0.0",
"@nestjs/platform-socket.io": "^7.3.2",
"@nestjs/serve-static": "^2.1.3",
"@nestjs/typeorm": "^7.1.0",
"@nestjs/websockets": "^7.3.2",
"@types/socket.io": "^2.1.8",

我也面临着同样的问题。实际上,这一切都是在向我的一个事件网关添加一些名称空间之后开始的。从错误消息来看,似乎无法从shared_utils_1中找到一些导出的实用程序函数。. 经过简短的调查,发现这是作为"nestjs/common">的一部分导出的。包中。所以我看了看包装。在构建过程中复制到docker容器的一部分,并注意到该特定包的版本(7.0.9)与我在本地构建应用程序时使用的版本(8.0.0)不同。

我更新了版本(8.0.0),重新构建了应用程序,从那以后一切似乎都在工作。