Add Streamlit web UI and Docker support
- 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>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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"]
|
||||
Reference in New Issue
Block a user