37 lines
916 B
Docker
37 lines
916 B
Docker
# ===========================================
|
|
# Development Dockerfile with Hot Reload
|
|
# ===========================================
|
|
FROM node:20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Install dependencies for development (Prisma needs libc6-compat and openssl)
|
|
RUN apk add --no-cache libc6-compat openssl
|
|
|
|
# Set environment
|
|
ENV NODE_ENV=development
|
|
ENV PORT=3000
|
|
|
|
# Set dummy DATABASE_URL for Prisma generate (doesn't need real connection)
|
|
ENV DATABASE_URL="postgresql://dummy:dummy@dummy:5432/dummy"
|
|
|
|
# Copy package files
|
|
COPY package.json package-lock.json* ./
|
|
COPY prisma ./prisma/
|
|
|
|
# Install all dependencies (including dev)
|
|
RUN npm install
|
|
|
|
# Generate Prisma client
|
|
RUN npx prisma generate
|
|
|
|
# Copy startup script
|
|
COPY scripts/dev-startup.sh ./scripts/dev-startup.sh
|
|
RUN chmod +x ./scripts/dev-startup.sh
|
|
|
|
# Expose port
|
|
EXPOSE 3000
|
|
|
|
# Start with dev startup script (includes migrations)
|
|
CMD ["sh", "./scripts/dev-startup.sh"]
|