taskflow-api / Dockerfile
suhail
fris
4b49493
# # Use Python 3.11 slim image
# FROM python:3.11-slim
# # Set working directory
# WORKDIR /app
# # Install system dependencies
# RUN apt-get update && apt-get install -y \
# gcc \
# postgresql-client \
# && 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 . .
# # Expose port 7860 (Hugging Face Spaces default)
# EXPOSE 7860
# # Run database migrations and start the application
# CMD alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860
# # =========================
# # Base Image
# # =========================
# FROM python:3.11-slim
# # Set working directory
# WORKDIR /app
# # =========================
# # Install system dependencies
# # =========================
# RUN apt-get update && apt-get install -y \
# gcc \
# libpq-dev \
# postgresql-client \
# && rm -rf /var/lib/apt/lists/*
# # =========================
# # Copy requirements first (cache optimization)
# # =========================
# COPY requirements.txt .
# # Upgrade pip and install Python dependencies
# RUN pip install --upgrade pip
# RUN pip install --no-cache-dir -r requirements.txt
# # =========================
# # Copy app source code
# # =========================
# COPY src/ ./src
# # Copy alembic config
# COPY alembic.ini .
# # =========================
# # Copy specs folder to match expected absolute path
# # =========================
# COPY specs/ /specs/
# # =========================
# # Expose port (for FastAPI / Hugging Face Spaces)
# # =========================
# EXPOSE 7860
# # =========================
# # Run migrations and start app
# # =========================
# CMD alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860
# ////////////////////
# Use slim Python 3.11 image
FROM python:3.11-slim
# Set working directory inside container
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
gcc \
libpq-dev \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
RUN pip uninstall -y bcrypt && \
pip install bcrypt==4.0.1 passlib[bcrypt]==1.7.4
# Copy and install Python dependencies
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
# Copy source code
COPY src/ ./src
# Copy Alembic migrations and config
COPY src/alembic/ ./alembic/
COPY alembic.ini .
# Copy specs (MCP tools contracts)
COPY specs/ ./specs/
# Set environment variable for working directory (optional, helps paths)
ENV PROJECT_ROOT=/app
# Expose port
EXPOSE 7860
# Run migrations and start the app
CMD ["sh", "-c", "alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860 --reload"]