7b040a4445
- app.py: Streamlit-based web UI for file-to-markdown conversion - Dockerfile.ui: Docker image for UI (ffmpeg, ExifTool, port 8501) - .dockerignore: whitelist app.py for Docker build - CLAUDE.md: project instructions for Claude Code Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
947 B
Docker
35 lines
947 B
Docker
FROM python:3.13-slim-bullseye
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV EXIFTOOL_PATH=/usr/local/bin/exiftool
|
|
ENV FFMPEG_PATH=/usr/bin/ffmpeg
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ffmpeg \
|
|
curl \
|
|
perl \
|
|
make \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& curl -fsSL https://exiftool.org/Image-ExifTool-13.55.tar.gz -o /tmp/exiftool.tar.gz \
|
|
&& tar -xzf /tmp/exiftool.tar.gz -C /tmp \
|
|
&& cd /tmp/Image-ExifTool-13.55 \
|
|
&& perl Makefile.PL && make install \
|
|
&& rm -rf /tmp/exiftool.tar.gz /tmp/Image-ExifTool-13.55
|
|
|
|
WORKDIR /app
|
|
COPY packages/ /app/packages/
|
|
COPY app.py /app/app.py
|
|
|
|
RUN pip --no-cache-dir install \
|
|
/app/packages/markitdown[all] \
|
|
streamlit
|
|
|
|
EXPOSE 8501
|
|
|
|
HEALTHCHECK CMD curl -f http://localhost:8501/_stcore/health || exit 1
|
|
|
|
ENTRYPOINT ["streamlit", "run", "app.py", \
|
|
"--server.port=8501", \
|
|
"--server.address=0.0.0.0", \
|
|
"--server.headless=true"]
|