comma-fixer / Dockerfile
klasocki's picture
Multi-stage build in Dockerfile, reduces size by 3GB, and runs tests
775b8b4
raw
history blame
828 Bytes
FROM python:3.10-slim as base
WORKDIR /comma-fixer
ENV PYTHONUNBUFFERED=1
RUN python -m venv /venv
ENV PATH="/venv/bin:$PATH"
COPY requirements.txt .
COPY test-requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY src/baseline.py src/baseline.py
RUN python src/baseline.py # This pre-downloads models and tokenizers
COPY . .
FROM base as test
RUN pip install -r test-requirements.txt
WORKDIR src
RUN python -m pytest ../tests
FROM python:3.10-slim as deploy
WORKDIR /comma-fixer
COPY --from=base /comma-fixer /comma-fixer
COPY --from=base /venv /venv
# Copy pre-downloaded models and make sure we are using the env
COPY --from=base /root/.cache/huggingface/hub/ /root/.cache/huggingface/hub/
ENV PATH="/venv/bin:$PATH"
EXPOSE 8000
CMD uvicorn "app:app" --port 8000 --host "0.0.0.0"