managarten/services/matrix-calendar-bot/Dockerfile
Till-JS 57b9d4cb37 feat(matrix-nutriphi-bot): add Matrix bot for nutrition tracking
- NestJS bot with matrix-bot-sdk integration
- Commands: !help, !login, !analyze, !today, !week, !goals, !favorites, !tips
- Integrates with NutriPhi backend API (port 3023)
- User session management with JWT authentication
- Image analysis via Gemini AI (NutriPhi backend)
- Port 3316

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:57:49 +01:00

48 lines
936 B
Docker

# Build stage
FROM node:20-alpine AS builder
WORKDIR /app
# Copy package files
COPY package.json ./
# Install all dependencies (including devDependencies for build)
RUN npm install
# Copy source code
COPY . .
# Build TypeScript
RUN rm -rf dist && npx tsc -p tsconfig.build.json
# Production stage
FROM node:20-alpine AS runner
WORKDIR /app
# Create data directory for storage
RUN mkdir -p /app/data
# Copy package files
COPY package.json ./
# Install production dependencies only
RUN npm install --omit=dev
# Copy built application
COPY --from=builder /app/dist ./dist
# Create non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S nestjs -u 1001 && \
chown -R nestjs:nodejs /app
USER nestjs
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3315/health || exit 1
EXPOSE 3315
CMD ["node", "dist/main.js"]