mirror of
https://github.com/Dvorinka/Trackeep.git
synced 2026-06-03 20:12:58 +00:00
50 lines
1.4 KiB
Docker
50 lines
1.4 KiB
Docker
# Build stage
|
|
FROM node:22-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Accept build arguments for VITE environment variables
|
|
ARG VITE_DEMO_MODE=false
|
|
ARG VITE_API_URL=http://localhost:8080
|
|
|
|
# Copy package files
|
|
COPY frontend/package*.json ./frontend/
|
|
RUN cd frontend && npm install --include=dev
|
|
|
|
# Copy frontend source code only
|
|
COPY frontend/ ./frontend/
|
|
|
|
# Create a .env.production file with build arguments
|
|
RUN cd frontend && echo "VITE_DEMO_MODE=${VITE_DEMO_MODE}" >> .env.production && \
|
|
echo "VITE_API_URL=${VITE_API_URL}" >> .env.production
|
|
|
|
# Build the application (frontend only)
|
|
RUN cd frontend && npm run build
|
|
|
|
# Production stage
|
|
FROM nginx:alpine
|
|
|
|
# Copy built assets from builder stage
|
|
COPY --from=builder /app/frontend/dist /usr/share/nginx/html
|
|
|
|
# Fallback branding assets from repo root for clean-clone builds
|
|
COPY trackeep.svg /usr/share/nginx/html/trackeep.svg
|
|
COPY trackeepfavi.png /usr/share/nginx/html/trackeepfavi.png
|
|
COPY trackeepfavi_bg.png /usr/share/nginx/html/trackeepfavi_bg.png
|
|
|
|
# Copy the entrypoint script
|
|
COPY frontend/docker-entrypoint.sh /docker-entrypoint.sh
|
|
RUN chmod +x /docker-entrypoint.sh
|
|
|
|
# Copy nginx configuration
|
|
COPY frontend/nginx.conf /etc/nginx/nginx.conf
|
|
|
|
# Make a backup of the original index.html for runtime substitution
|
|
RUN cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
|
|
|
|
# Expose port (will be dynamically set by entrypoint)
|
|
EXPOSE 80
|
|
|
|
# Start the entrypoint script
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|