diff --git a/docker-compose.yml b/docker-compose.yml index 481a025..df616eb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,11 @@ services: dockerfile: ../docker/frontend/Dockerfile container_name: support-frontend restart: unless-stopped + volumes: + - ./frontend:/app + - /app/node_modules + depends_on: + - backend backend: build: @@ -18,6 +23,7 @@ services: - TELEGRAM_BOT_TOKEN=7677506032:AAHEqNUr1lIUfNVbLwaWIaPeKKShsCyz3eo - TELEGRAM_CHAT_ID=-1002037023574 volumes: + - ./backend:/app - sqlite_data:/app/instance nginx: @@ -29,6 +35,7 @@ services: volumes: - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./docker/nginx/conf.d:/etc/nginx/conf.d:ro + - ./frontend/dist:/usr/share/nginx/html:ro depends_on: - frontend - backend diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index 53f6cd9..137c317 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -1,3 +1,4 @@ +# docker/backend/Dockerfile FROM python:3.11-slim WORKDIR /app @@ -6,11 +7,7 @@ RUN apt-get update && apt-get install -y \ gcc \ && rm -rf /var/lib/apt/lists/* -# Copy requirements first for better caching COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt -# Copy the rest of the application -COPY . . - CMD ["python", "run.py"] diff --git a/docker/frontend/Dockerfile b/docker/frontend/Dockerfile index 39dda1d..745671c 100644 --- a/docker/frontend/Dockerfile +++ b/docker/frontend/Dockerfile @@ -5,13 +5,16 @@ WORKDIR /app # Copy package files COPY package*.json ./ + +# Install dependencies RUN npm install -# Copy source code and build +# Copy source code COPY . . + +# Build the application RUN npm run build -# Production stage +# Copy built files to nginx html directory FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html -COPY nginx.conf /etc/nginx/conf.d/default.conf diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf index d06cf2e..1879958 100644 --- a/docker/nginx/conf.d/default.conf +++ b/docker/nginx/conf.d/default.conf @@ -1,6 +1,6 @@ # docker/nginx/conf.d/default.conf upstream backend { - server backend:8000; + server backend:8000; # Changed port to match FastAPI default } server { @@ -10,15 +10,15 @@ server { root /usr/share/nginx/html; index index.html; - # Handle SPA routing + # Handle frontend routes location / { try_files $uri $uri/ /index.html; add_header Cache-Control "no-cache"; } - # Proxy API requests + # Proxy API requests to backend location /api/ { - proxy_pass http://backend/api/; + proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade';