Add Docker support
- Dockerfile with Python 3.12, git, and optional Qt6 for GUI - docker-compose.yml with services: cli, build, test-install, gui, shell 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e37b1a9722
commit
7ae2024c83
|
|
@ -0,0 +1,67 @@
|
|||
# CascadingDev Simplified - Git-native AI collaboration framework
|
||||
#
|
||||
# Build: docker build -t cascadingdev .
|
||||
# Test: docker run -it --rm cascadingdev cdev --help
|
||||
|
||||
FROM python:3.12-slim
|
||||
|
||||
LABEL maintainer="rob"
|
||||
LABEL description="CascadingDev - Git hooks and cascading rules framework"
|
||||
|
||||
# Install system dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
# Qt6 dependencies for Ramble GUI (optional)
|
||||
libgl1-mesa-glx \
|
||||
libegl1-mesa \
|
||||
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 VERSION README.md ./
|
||||
COPY src/ ./src/
|
||||
COPY assets/ ./assets/
|
||||
COPY tools/ ./tools/
|
||||
COPY docs/ ./docs/
|
||||
|
||||
# Install CascadingDev
|
||||
RUN pip install --no-cache-dir -e .
|
||||
|
||||
# Install PySide6 for Ramble GUI (optional, makes image larger)
|
||||
RUN pip install --no-cache-dir PySide6 || true
|
||||
|
||||
# Verify installation
|
||||
RUN cdev --help
|
||||
|
||||
# Default: show help
|
||||
CMD ["cdev", "--help"]
|
||||
|
||||
# ==============================================================================
|
||||
# Usage Examples
|
||||
# ==============================================================================
|
||||
# Build:
|
||||
# docker build -t cascadingdev .
|
||||
#
|
||||
# Show help:
|
||||
# docker run -it --rm cascadingdev
|
||||
#
|
||||
# Build installer bundle:
|
||||
# docker run -it --rm -v $(pwd)/output:/output cascadingdev \
|
||||
# bash -c "cdev build && cp -r install/* /output/"
|
||||
#
|
||||
# Install into a new project (headless):
|
||||
# docker run -it --rm -v /path/to/project:/project cascadingdev \
|
||||
# python install/cascadingdev-*/setup_cascadingdev.py --target /project --no-ramble
|
||||
#
|
||||
# Interactive shell:
|
||||
# docker run -it --rm cascadingdev bash
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
# CascadingDev Simplified - Docker Compose
|
||||
#
|
||||
# Quick Start:
|
||||
# docker-compose build # Build the image
|
||||
# docker-compose run --rm cli # Show help
|
||||
# docker-compose run --rm build # Build installer bundle
|
||||
# docker-compose run --rm shell # Interactive shell
|
||||
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# ============================================================================
|
||||
# CLI (show help)
|
||||
# ============================================================================
|
||||
cli:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: cascadingdev:latest
|
||||
command: ["cdev", "--help"]
|
||||
|
||||
# ============================================================================
|
||||
# Build installer bundle
|
||||
# ============================================================================
|
||||
build:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: cascadingdev:latest
|
||||
volumes:
|
||||
- ./output:/output
|
||||
command: ["bash", "-c", "cdev build && cp -r install/* /output/ && echo 'Installer bundle copied to ./output/'"]
|
||||
|
||||
# ============================================================================
|
||||
# Test installation (creates project in /tmp)
|
||||
# ============================================================================
|
||||
test-install:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: cascadingdev:latest
|
||||
command: >
|
||||
bash -c "
|
||||
cdev build &&
|
||||
python install/cascadingdev-*/setup_cascadingdev.py --target /tmp/test-project --no-ramble &&
|
||||
echo '=== Installation successful ===' &&
|
||||
ls -la /tmp/test-project/ &&
|
||||
echo '=== Pre-commit hook ===' &&
|
||||
cat /tmp/test-project/.git/hooks/pre-commit | head -30
|
||||
"
|
||||
|
||||
# ============================================================================
|
||||
# GUI (requires X11 forwarding)
|
||||
# ============================================================================
|
||||
gui:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: cascadingdev:latest
|
||||
environment:
|
||||
- DISPLAY=${DISPLAY:-:0}
|
||||
- QT_QPA_PLATFORM=xcb
|
||||
volumes:
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix:ro
|
||||
- ./output:/output
|
||||
command: >
|
||||
bash -c "
|
||||
cdev build &&
|
||||
python install/cascadingdev-*/setup_cascadingdev.py --target /output/test-project
|
||||
"
|
||||
network_mode: host
|
||||
|
||||
# ============================================================================
|
||||
# Interactive Shell
|
||||
# ============================================================================
|
||||
shell:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: cascadingdev:latest
|
||||
volumes:
|
||||
- ./output:/output
|
||||
command: ["/bin/bash"]
|
||||
stdin_open: true
|
||||
tty: true
|
||||
|
||||
# ==============================================================================
|
||||
# Usage Examples
|
||||
# ==============================================================================
|
||||
#
|
||||
# Build image:
|
||||
# docker-compose build
|
||||
#
|
||||
# Show CLI help:
|
||||
# docker-compose run --rm cli
|
||||
#
|
||||
# Build installer bundle (outputs to ./output/):
|
||||
# docker-compose run --rm build
|
||||
#
|
||||
# Test installation in container:
|
||||
# docker-compose run --rm test-install
|
||||
#
|
||||
# Interactive shell:
|
||||
# docker-compose run --rm shell
|
||||
#
|
||||
# GUI with Ramble (requires: xhost +local:docker):
|
||||
# docker-compose run --rm gui
|
||||
Loading…
Reference in New Issue