【问题标题】:Docker container with nestjs app exits without any error带有nestjs应用程序的Docker容器退出没有任何错误
【发布时间】:2022-09-26 14:25:52
【问题描述】:

我正在尝试对 nestjs 应用程序进行 dockerize 处理。我必须使用我们的 devops 的方法,所以我不能提供所有的配置细节。 package.json 中的脚本对于任何 nestjs 应用程序都是典型的。 我有 Dockerfile.backend:

FROM some.registry.net/docker/node16 as builder
WORKDIR /opt/app
COPY --chown=app:app ./nestjs/nest-project .
RUN yarn install --non-interactive --production --frozen-lockfile

FROM some.registry.net/docker/node16 as serve
WORKDIR /opt/app
ENV NODE_ENV=production
ENV APP_CONFIG=/opt/app/config/config.yaml
COPY --chown=app:app ./build/Procfile /opt/startup/Procfile
COPY --chown=app:app ./build/config.yaml ./config/config.yaml
COPY --chown=app:app --from=builder /opt/app/ ./
COPY --chown=app:app --from=builder /opt/app/node_modules ./node_modules
USER root
##RUN npm install pm2 -g
##RUN npm install -g nodemon
RUN npm run build
CMD [\"/opt/startup/entrypoint.sh\"]

我有 docker-compose.yml 文件:

version: \"2\"
services:
  backend:
    build:
      context: .
      dockerfile: ./build/Dockerfile.backend
    command: npm run start
    ##volumes:
      ##- ./nestjs/nest-project:/app
      ##- /app/node_modules
    ports:
      - 4001:4001
      - 9229:9229
    environment:
      - NODE_ENV=development
      - PORT=4001
      - REACT_APP_PROD=0
      - REACT_APP_BACKEND_URL=http://127.0.0.1:4001
      - FRONTEND_URL=http://localhost:4000
      - APP_CONFIG=/opt/app/config/config.yaml


  frontend:
    build: ./frontend
    command: npm start
    ##volumes:
      ##- ./frontend:/app
      ##- /app/node_modules
    environment:
      - NODE_ENV=development
      - DISABLE_ESLINT_PLUGIN=true
      - REACT_APP_BACKEND_URL=http://127.0.0.1:4001/backend
      - PORT=4000
      - REACT_APP_PROD=0
    ports:
      - 4000:4000

所以最有趣的地方在于后端命令部分。我只能使用 npm run start:dev 命令启动容器。当我进入npm startnpm run start:prod 容器执行(我在日志中看到nestjs应用程序启动,成功连接到数据库)并退出而没有任何错误。我尝试了node dist/main 并得到了相同的结果。我尝试了使用nodemon dist/main nodemon 的nodemon,即使使用详细标志显示红线类似于app crashed... 并且没有提供更多信息。我用这个命令pm2 --name nestjs start npm -- start pm2 成功启动了 pm2,并且容器在没有任何信息的情况下退出。 到目前为止,我发现问题出在我的配置中,但我不知道去哪里寻找。提前致谢。

    标签: node.js docker docker-compose nestjs


    【解决方案1】:

    我也遇到了同样的问题,请问你解决了吗?

    如何?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2016-12-26
    • 2021-05-11
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多