content: # Development target
  FROM node:lts-alpine AS development
  
  ENV NODE_ENV=development \
      NPM_CONFIG_UPDATE_NOTIFIER=false \
      ENABLE_LOGGING=true \
      LOG_LEVEL=info \
      PM_LOG_TO_CONSOLE=true \
      PORT=3001
  
  RUN apk add --no-cache openssl tini curl
  
  USER node
  
  WORKDIR /app
  
  COPY --chown=node:node package*.json ./
  COPY --chown=node:node backend/ ./backend/
  COPY --chown=node:node agents ./agents_backup
  COPY --chown=node:node agents ./agents
  COPY --chmod=755 docker/backend.docker-entrypoint.sh ./entrypoint.sh
  
  WORKDIR /app/backend
  
  RUN npm ci --ignore-scripts && npx prisma generate
  
  EXPOSE 3001
  
  VOLUME [ "/app/agents" ]
  
  HEALTHCHECK --interval=10s --timeout=5s --start-period=30s --retries=5 \
    CMD curl -f http://localhost:3001/health || exit 1
  
  ENTRYPOINT ["/sbin/tini", "--"]
  CMD ["/app/entrypoint.sh"]
  
  # Builder stage for production
  FROM node:lts-alpine AS builder
  
  RUN apk add --no-cache openssl
  
  WORKDIR /app
  
  COPY --chown=node:node package*.json ./
  COPY --chown=node:node backend/ ./backend/
  
  WORKDIR /app/backend
  
  RUN npm ci --ignore-scripts &&\
      npx prisma generate &&\
      npm prune --omit=dev &&\
      npm cache clean --force
  
  # Production stage
  FROM node:lts-alpine
  
  ENV NODE_ENV=production \
      NPM_CONFIG_UPDATE_NOTIFIER=false \
      ENABLE_LOGGING=true \
      LOG_LEVEL=info \
      PM_LOG_TO_CONSOLE=true \
      PORT=3001 \
      JWT_EXPIRES_IN=1h \
      JWT_REFRESH_EXPIRES_IN=7d \
      SESSION_INACTIVITY_TIMEOUT_MINUTES=30
  
  RUN apk add --no-cache openssl tini curl
  
  USER node
  
  WORKDIR /app
  
  COPY --from=builder /app/backend ./backend
  COPY --from=builder /app/node_modules ./node_modules
  COPY --chown=node:node agents ./agents_backup
  COPY --chown=node:node agents ./agents
  COPY --chmod=755 docker/backend.docker-entrypoint.sh ./entrypoint.sh
  
  WORKDIR /app/backend
  
  EXPOSE 3001
  
  VOLUME [ "/app/agents" ]
  
  HEALTHCHECK --interval=10s --timeout=5s --start-period=30s --retries=5 \
    CMD curl -f http://localhost:3001/health || exit 1
  
  ENTRYPOINT ["/sbin/tini", "--"]
  CMD ["/app/entrypoint.sh"]
  