ramble/Dockerfile

59 lines
1.4 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 dependencies (Debian Trixie package names)
libgl1 \
libegl1 \
libxkbcommon0 \
libdbus-1-3 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-keysyms1 \
libxcb-shape0 \
libxcb-xinerama0 \
libxcb-randr0 \
libxcb-render-util0 \
&& 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
# Default: show help
CMD ["ramble", "--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"}'