diff --git a/Dockerfile.ml b/Dockerfile.ml new file mode 100644 index 0000000..3812915 --- /dev/null +++ b/Dockerfile.ml @@ -0,0 +1,38 @@ +# syntax=docker/dockerfile:1.7 + +FROM python:3.12-slim +ENV PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PIP_NO_CACHE_DIR=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 \ + HF_HOME=/models/.huggingface \ + TRANSFORMERS_CACHE=/models/.huggingface \ + ML_MODEL_DIR=/models + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ffmpeg \ + libpq5 \ + libjpeg62-turbo \ + libwebp7 \ + libpng16-16 \ + libgl1 \ + libglib2.0-0 \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY requirements-ml.txt requirements.txt ./ +RUN pip install -r requirements-ml.txt + +COPY backend/ ./backend/ +COPY alembic/ ./alembic/ +COPY alembic.ini ./ +COPY entrypoint.sh ./ +RUN chmod +x entrypoint.sh + +# Models self-heal into /models on first start (FC-2 implements this) +VOLUME ["/models"] + +ENTRYPOINT ["./entrypoint.sh"] +CMD ["ml-worker"]