Files
CRM/Dockerfile

33 lines
673 B
Docker

# Base Image: Lightweight Node.js Alpine
FROM node:18-alpine
# Set working directory
WORKDIR /app
# Copy package descriptors first to leverage Docker layer caching
COPY package.json ./
# Install production dependencies only
RUN npm install --omit=dev
# Copy server code and public assets
COPY server.js ./
COPY public/ ./public/
# Create persistent storage folder for SQLite database
RUN mkdir -p /app/data
# Environment configuration variables
ENV PORT=8085
ENV DATABASE_PATH=/app/data/crm.db
ENV NODE_ENV=production
# Expose internal Express port
EXPOSE 8085
# Define persistent volume directory for crm.db
VOLUME ["/app/data"]
# Run server
CMD ["npm", "start"]