HR-ATS-Portal/app/Dockerfile

33 lines
875 B
Docker

# syntax=docker/dockerfile:1
#
# Bulk ATS scoring engine — the standalone FastAPI service (CLAUDE.md is its spec).
# Serves POST /api/v1/score, GET /api/v1/health and the card-grid test UI at /.
#
# THE BUILD CONTEXT IS THE REPO ROOT (pyproject.toml lives there):
#
# docker build -f app/Dockerfile -t hrms-ats-engine:local .
FROM python:3.12-slim
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1 \
PYTHONPATH=/srv
WORKDIR /srv
RUN groupadd --system app && useradd --system --gid app --home-dir /srv --shell /usr/sbin/nologin app
COPY pyproject.toml ./
COPY app/ ./app/
# Installs the pinned dependencies from pyproject.toml along with the package.
RUN pip install --no-cache-dir . \
&& chown -R app:app /srv
USER app
EXPOSE 8100
CMD ["uvicorn", "app.main:create_app", "--factory", "--host", "0.0.0.0", "--port", "8100"]