Files
nlcc-itinerary/Dockerfile

38 lines
622 B
Docker

FROM node:20-alpine
# Install dumb-init for proper signal handling
RUN apk add --no-cache dumb-init
# Set working directory
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm install --production
# Copy application code
COPY . .
# Build the application
RUN npm run build
# Create data directory for SQLite
RUN mkdir -p /data
# Set proper permissions
RUN chown -R node:node /app /data
# Switch to non-root user
USER node
# Expose port
EXPOSE 3000
# Use dumb-init to handle signals properly
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
# Start the application
CMD ["npm", "start"]