analytics-engine / Dockerfile
Peter Mutwiri
fixwd ai service
f2757ec
raw
history blame
1.75 kB
# ---- 1. base image ---------------------------------------------------------
FROM python:3.11-slim
# ---- 2. system dependencies for binary wheels ------------------------------
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
gcc \
g++ \
cmake \
libgomp1 \
libstdc++6 \
ca-certificates \
wget \
unzip \
&& rm -rf /var/lib/apt/lists/*
# ---- 3. upgrade pip & enable pre-built wheels ------------------------------
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
# ---- 4. install Python deps (+ DuckDB driver) ------------------------------
COPY requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir --prefer-binary -r /tmp/requirements.txt && \
pip install --no-cache-dir duckdb==0.10.3
# ---- 5. Pre-download VSS extension (matches DuckDB v0.10.3) ---------------
# This prevents runtime download failures and startup crashes
RUN mkdir -p /root/.duckdb/extensions/v0.10.3/linux_amd64_gcc4 && \
wget -q https://extensions.duckdb.org/v0.10.3/linux_amd64_gcc4/vss.duckdb_extension.gz \
-O /root/.duckdb/extensions/v0.10.3/linux_amd64_gcc4/vss.duckdb_extension.gz && \
gunzip /root/.duckdb/extensions/v0.10.3/linux_amd64_gcc4/vss.duckdb_extension.gz
# ---- 6. copy source --------------------------------------------------------
COPY . /app
WORKDIR /app
# ---- 7. scheduler loop ----------------------------------------------------
COPY scheduler_loop.py /app/scheduler_loop.py
# corrected duck db
# ---- 8. start both services -----------------------------------------------
CMD sh -c "python -m uvicorn app.main:app --host 0.0.0.0 --port 7860 & python /app/scheduler_loop.py"