# Backend Development Dockerfile # Hot reload enabled with nodemon FROM node:20-alpine # Install required packages RUN apk add --no-cache \ sqlite \ tini WORKDIR /app # Copy package files COPY package*.json ./ # Install all dependencies (including dev) RUN npm install # Copy application code COPY . . # Copy entrypoint script COPY docker-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint.sh # Create necessary directories RUN mkdir -p database logs # Expose port EXPOSE 3000 # Use tini and custom entrypoint ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/docker-entrypoint.sh"] # Start with nodemon for hot reload CMD ["npm", "run", "dev"]