ramble/Dockerfile

72 lines
1.7 KiB
Docker

# Ramble - AI-powered structured field extraction
#
# Build: docker build -t ramble .
# Run: docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix ramble
FROM python:3.12-slim
LABEL maintainer="rob"
LABEL description="Ramble - AI-powered structured field extraction GUI"
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
plantuml \
# Qt6 xcb platform plugin dependencies
libgl1 \
libegl1 \
libxkbcommon0 \
libxkbcommon-x11-0 \
libdbus-1-3 \
libxcb1 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-shm0 \
libxcb-sync1 \
libxcb-xfixes0 \
libxcb-xinerama0 \
libxcb-xkb1 \
libxcb-randr0 \
libx11-xcb1 \
libfontconfig1 \
libfreetype6 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy project files
COPY pyproject.toml README.md ./
COPY src/ ./src/
# Install Ramble
RUN pip install --no-cache-dir -e .
# Verify installation
RUN ramble --help
# ENTRYPOINT makes ramble the base command
# CMD provides default args (can be overridden)
ENTRYPOINT ["ramble"]
CMD ["--help"]
# ==============================================================================
# Usage Examples
# ==============================================================================
# Build:
# docker build -t ramble .
#
# Run with mock provider (no AI):
# xhost +local:docker
# docker run -it --rm \
# -e DISPLAY=$DISPLAY \
# -v /tmp/.X11-unix:/tmp/.X11-unix \
# ramble --provider mock
#
# Headless mode (no GUI):
# docker run -it --rm ramble \
# --field-values '{"Title":"MyApp","Summary":"A cool app"}'