diff --git a/docker/minimal/Dockerfile b/docker/minimal/Dockerfile new file mode 100644 index 00000000..85413e91 --- /dev/null +++ b/docker/minimal/Dockerfile @@ -0,0 +1,32 @@ +FROM python:3.12-slim + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + git \ + curl \ + build-essential \ + pkg-config \ + libssl-dev \ + ffmpeg \ + libsm6 \ + libxext6 \ + && rm -rf /var/lib/apt/lists/* + +# Install Rust (required for Dora) +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/root/.cargo/bin:${PATH}" + +# Install uv +RUN pip install --no-cache-dir uv + +# Install latest Dora +RUN pip install --no-cache-dir dora-rs-cli + +# Create a working directory +WORKDIR /app + +# Set environment variables +ENV PYTHONUNBUFFERED=1 + +# Default command when container starts +CMD ["bash"] diff --git a/docker/minimal/README.md b/docker/minimal/README.md new file mode 100644 index 00000000..9dea1e31 --- /dev/null +++ b/docker/minimal/README.md @@ -0,0 +1,44 @@ +# Minimal Dora Docker Environment + +This Dockerfile provides a minimal environment for running Dora applications with Python and uv package manager. + +## What's Included + +- Python 3.12 +- Rust (required for Dora) +- uv package manager +- Latest Dora release + +## Building the Image + +```bash +docker build . -t dora-minimal +``` + +## Running the Container + +```bash +docker run -it --rm dora-minimal +``` + +## Running not in interactive + +```bash +docker run --rm dora-minimal dora --help +``` + +## Running with privilege as well as USB connection + +```bash +docker run --rm --device=/dev/ttyUSB0 dora-minimal dora --help +``` + +## Usage + +Once inside the container, you can: + +- Run Dora commands: `dora --help` +- Use uv for package management: `uv install numpy` +- Develop and test your Dora applications + +This container is designed to provide a consistent environment for Dora development without requiring complex setup on the host machine.