You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nx Monorepo中Nest.js Gateway服务容器内热重载失效问题求助

Nx Monorepo中Nest.js Gateway服务容器内热重载失效问题求助

大家好,我最近在折腾Nx Monorepo里的Nest.js Gateway服务,想把热重载配置好,这样改代码不用反复重启容器,省不少事。但试了好多次,修改本地文件后容器里的服务完全没反应,热重载根本触发不了。

我查了不少资料,大部分都推荐开启轮询模式,但我按配置加了相关环境变量后还是没用,实在没辙了,来请教下各位大佬有没有可行的解决思路。

我的配置详情

Gateway服务的Dockerfile

# Base Image (Makes maintaining versions easier)
FROM node:22-alpine AS base
WORKDIR /app
# Install jq for JSON manipulation
RUN apk add --no-cache jq moreutils

# NPM Package Installation
FROM base AS deps
WORKDIR /app
# Workspace Dependencies - Gateway
COPY source/api/gateway/tsconfig.json /app/source/api/gateway/tsconfig.json
COPY source/api/gateway/package.json /app/source/api/gateway/package.json
# Workspace Dependencies - API Utils
COPY source/lib/api-utils/tsconfig.json /app/source/lib/api-utils/tsconfig.json
COPY source/lib/api-utils/package.json /app/source/lib/api-utils/package.json
# Workspace Dependencies - Monorepo
COPY package.json /app/
COPY yarn.lock /app/
RUN yarn install --frozen-lockfile

# Application Builder
FROM base AS application-builder
WORKDIR /app
COPY --from=deps /app/node_modules /app/node_modules
COPY .prettierrc /app/.prettierrc
COPY .prettierignore /app/.prettierignore
COPY eslint.config.mjs /app/eslint.config.mjs
COPY jest.config.ts /app/jest.config.ts
COPY jest.preset.js /app/jest.preset.js
COPY nx.json /app/nx.json
COPY package.json /app/package.json
COPY tsconfig.base.json /app/tsconfig.base.json
COPY tsconfig.json /app/tsconfig.json
COPY yarn.lock /app/yarn.lock
# Source
COPY source/api/gateway /app/source/api/gateway
COPY source/lib/api-utils /app/source/lib/api-utils
RUN yarn nx sync
RUN NX_DAEMON=false yarn nx run api-gateway:build --skip-nx-cache

# Development Build
FROM application-builder AS development
EXPOSE 4000 4200
CMD ["yarn", "nx", "run", "api-gateway:serve", "--configuration=development", "--watch"]

# Production Build
# Omitted section for production to keep the question concise

Podman Compose配置

gateway:
  build:
    context: ../
    dockerfile: docker/DockerFile
    target: development
  container_name: gateway
  privileged: true
  environment:
    - CHOKIDAR_USEPOLLING=true
    - CHOKIDAR_INTERVAL=300
    - WATCHPACK_POLLING=true
    - FORCE_COLOR=1
    - TZ=UTC
  ports:
    - 4000:4000
    - 4200:4200
  volumes:
    - ../source/api/gateway:/app/source/api/gateway

已尝试的方案

  • 配置了CHOKIDAR_USEPOLLING、WATCHPACK_POLLING等环境变量,开启文件变更轮询
  • 将本地Gateway源码目录挂载到容器对应路径,确保文件变更能同步到容器内

我是参考Node.js容器开发的相关指南来配置的,但目前还是没解决热重载失效的问题,有没有朋友遇到过类似情况?求指点!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 03:09:28