FROM python:3.11-slim
ARG AUDITPROBE_VERSION=2.0.0
LABEL maintainer="AuditProbe Team"
LABEL version="${AUDITPROBE_VERSION}"
LABEL description="审探 AuditProbe:基于白盒规则、证据定位与人工复核的财报风险筛查助手"
WORKDIR /app
ARG APT_MIRROR_URL=https://mirrors.tuna.tsinghua.edu.cn
RUN sed -i "s|http://deb\.debian\.org|$APT_MIRROR_URL|g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true \
&& sed -i "s|http://deb\.debian\.org|$APT_MIRROR_URL|g" /etc/apt/sources.list 2>/dev/null || true \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
fonts-noto-cjk \
tini \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.docker.txt .
RUN python -m pip install --no-cache-dir --disable-pip-version-check -r requirements.docker.txt
COPY --chown=10001:10001 . .
RUN groupadd --gid 10001 auditprobe \
&& useradd --uid 10001 --gid 10001 --create-home --shell /usr/sbin/nologin auditprobe \
&& mkdir -p /app/runtime/hitl \
&& chown -R auditprobe:auditprobe /app /home/auditprobe
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV AUDITPROBE_VERSION=${AUDITPROBE_VERSION}
ENV STREAMLIT_SERVER_PORT=8501
ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
ENV HITL_ENABLED=true
ENV HITL_AUDIT_DB=/app/runtime/hitl/audit_log.db
ENV EVIDENCE_TRACING_ENABLED=true
USER auditprobe
EXPOSE 8501
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8501/_stcore/health', timeout=3)" || exit 1
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["python", "-m", "streamlit", "run", "ui/professional_app.py", "--server.headless=true", "--server.port=8501", "--server.address=0.0.0.0"]