27 lines
698 B
Docker
27 lines
698 B
Docker
# Frontend Dockerfile - Vite React App
|
|
FROM node:20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files first (for better caching when only code changes)
|
|
COPY package*.json ./
|
|
|
|
# Install dependencies to a cache location (will be copied to volume on start)
|
|
RUN npm ci && cp -r node_modules /node_modules_cache
|
|
|
|
# Copy entrypoint script
|
|
COPY docker-entrypoint.sh /usr/local/bin/
|
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
|
|
# Copy source code
|
|
COPY . .
|
|
|
|
# Expose Vite dev server port
|
|
EXPOSE 5173
|
|
|
|
# Use entrypoint to initialize node_modules volume if empty
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
|
|
# Run Vite dev server (accessible from outside container)
|
|
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
|