managarten/services/matrix-tts-bot/Dockerfile

44 lines
804 B
Docker

FROM node:20-alpine AS builder
WORKDIR /app
# Install pnpm
RUN corepack enable && corepack prepare pnpm@9.15.0 --activate
# Copy package files
COPY package.json ./
# Install dependencies
RUN pnpm install --ignore-scripts
# Copy source
COPY . .
# Build
RUN pnpm build
# Production image
FROM node:20-alpine
WORKDIR /app
# Install pnpm
RUN corepack enable && corepack prepare pnpm@9.15.0 --activate
# Copy package files and built code
COPY --from=builder /app/package.json ./
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
# Create data directory
RUN mkdir -p /app/data
# Run as non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S nestjs -u 1001 && \
chown -R nestjs:nodejs /app
USER nestjs
EXPOSE 3023
CMD ["node", "dist/main.js"]