ARG NODE_VERSION=22.12.0 ARG PORT=6060 FROM node:${NODE_VERSION}-slim as base ENV NODE_ENV=production ENV NODE_OPTIONS=--max-old-space-size=8192 WORKDIR /app FROM base as build COPY package.json . COPY package-lock.json . RUN npm install --production=false COPY . . RUN npm run build RUN npm prune FROM base as production ENV PORT=$PORT COPY --from=build /app/.output /app/.output # Copy debug entrypoint script COPY docker-entrypoint-debug.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint-debug.sh # Add health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:6060/api/health || exit 1 # Install curl and net-tools for health check and debugging RUN apt-get update && apt-get install -y curl net-tools wget && rm -rf /var/lib/apt/lists/* # Use debug entrypoint ENTRYPOINT ["/usr/local/bin/docker-entrypoint-debug.sh"]