Browse Source

Upload files to ''

docker with FAISS
ayan.ghoshal-patch-1
ayan.ghoshal 5 days ago
parent
commit
d5c6c7c0c4
3 changed files with 102 additions and 0 deletions
  1. +34
    -0
      .dockerignore
  2. +34
    -0
      Dockerfile
  3. +34
    -0
      docker-compose.yml

+ 34
- 0
.dockerignore View File

@ -0,0 +1,34 @@
# Python
__pycache__
*.pyc
*.pyo
*.pyd
.Python
env/
venv/
.env
*.log
# Docker
Dockerfile
docker-compose.yml
.dockerignore
# Git
.git
.gitignore
# IDE
.vscode/
.idea/
# Face data (will be mounted as volume)
*.pkl
*.faiss
data/
# Others
README.md
*.md
tests/
.pytest_cache/

+ 34
- 0
Dockerfile View File

@ -0,0 +1,34 @@
# Use Python 3.11 slim as base image
FROM python:3.11-slim
# Set working directory
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
libgl1-mesa-glx \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements first for better caching
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Create directory for face data persistence
RUN mkdir -p /app/data
# Expose port
EXPOSE 8000
# Command to run the application
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

+ 34
- 0
docker-compose.yml View File

@ -0,0 +1,34 @@
version: '3.8'
services:
face-recognition-api:
build: .
container_name: face-recognition-api
ports:
- "8000:8000"
volumes:
- ./data:/app/data # For persisting face data
environment:
- PYTHONUNBUFFERED=1
- MAX_WORKERS=4
- FACE_DETECTION_SIZE=640
- SIMILARITY_THRESHOLD=0.6
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
cpus: '1'
memory: 2G
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
default:
driver: bridge

Loading…
Cancel
Save