【问题标题】:NestJS / Prisma Docker Container fails on AWS FargateNestJS / Prisma Docker 容器在 AWS Fargate 上失败
【发布时间】:2022-01-17 18:34:46
【问题描述】:

我将基于 nestjs 的后端部署在 docker 容器中到 AWS fargate。部署工作正常,容器可达,健康检查为绿色。一切正常并按预期工作。大约 5 分钟后,出现以下错误,容器任务不再可访问并重新启动。我不知道发生了什么以及我做错了什么。

这是来自 Cloudwatch 的错误日志:

npm timing command:run-script Completed in 305483ms
npm notice 
npm notice New minor version of npm available! 8.1.2 -> 8.3.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.3.0>
npm notice Run `npm install -g npm@8.3.0` to update!
npm notice 
npm verb stack Error: command failed
npm verb stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/index.js:64:27)
npm verb stack     at ChildProcess.emit (node:events:390:28)
npm verb stack     at maybeClose (node:internal/child_process:1064:16)
npm verb stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
npm verb pkgid backend@0.0.1
npm verb cwd /
npm verb Linux 4.14.248-189.473.amzn2.x86_64
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "start:prod" "--verbose"
npm verb node v16.13.1
npm verb npm  v8.1.2
npm ERR! path /
npm ERR! command failed
npm ERR! signal SIGTERM
npm ERR! command sh -c npm run migrate:deploy && node dist/main
npm verb exit 1
npm timing npm Completed in 305969ms
npm verb code 1
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-12-14T12_24_28_315Z-debug.log

这是我的 docker 文件:

FROM node:16 as build-stage

WORKDIR /app
COPY package*.json ./
COPY prisma ./prisma/

RUN npm install
COPY . .

RUN npm run build

FROM node:16

COPY --from=build-stage /app/node_modules ./node_modules
COPY --from=build-stage /app/prisma ./prisma
COPY --from=build-stage /app/resources ./resources
COPY --from=build-stage /app/package*.json ./
COPY --from=build-stage /app/dist ./dist

EXPOSE 3001
CMD [ "npm", "run", "start:prod", "--verbose"]

如果有人可以帮助我,我会非常高兴和感激:) 谢谢。

【问题讨论】:

  • 您似乎收到了SIGTERM。是否有可能您在 ECS 服务前配置了负载均衡器并且运行状况检查失败(从而强制回收容器)?
  • 酷。很高兴它有帮助。我将我的评论变成了答案,以便其他人在遇到相同问题时可以更好地找到它。

标签: node.js docker nestjs aws-fargate prisma


【解决方案1】:

您似乎收到了一个 SIGTERM。是否有可能您在 ECS 服务前配置了负载均衡器并且运行状况检查失败(从而强制回收容器)?

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 2023-02-02
    • 2018-09-23
    • 2020-12-04
    • 2021-06-11
    • 1970-01-01
    • 2022-01-22
    • 2018-05-18
    • 2020-12-30
    相关资源
    最近更新 更多