mirror of
https://github.com/Dvorinka/Trackeep.git
synced 2026-06-03 20:12:58 +00:00
954a1a1080
- Replace Redis with DragonflyDB for better performance and memory efficiency - Remove redundant environment variables (POSTGRES_*, ENCRYPTION_KEY, OAUTH_SERVICE_URL) - Consolidate database configuration to use single DB_* variables - Use JWT_SECRET for both JWT tokens and encryption - Remove PORT variable redundancy, use BACKEND_PORT consistently - Clean up docker-compose configurations for dev/prod consistency - Add DragonflyDB configuration with optimized memory usage - Remove redis.conf as it's no longer needed - Update health checks to use Redis-compatible CLI for DragonflyDB - Add missing VITE_API_URL to production frontend - Fix GitHub Actions to use correct go.sum path - Clean up development directories and unused files
47 lines
1.3 KiB
Docker
47 lines
1.3 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
|
|
ARG VITE_OAUTH_SERVICE_URL=https://oauth.trackeep.org
|
|
|
|
# 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 && \
|
|
echo "VITE_OAUTH_SERVICE_URL=${VITE_OAUTH_SERVICE_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
|
|
|
|
# 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"]
|