Add organized Docker container structure with disciplined naming

- Create layered container architecture: Base, Light, Full, Computational
- Implement non-root user management with UID/GID mapping
- Add Markwhen timeline tool to documentation stack
- Create wrapper scripts for environment variable handling
- Update documentation across all containers
- Establish naming convention using RCEO-AIOS-Public-Tools- prefix
- Add organizational rule to keep repository root clean
- Remove old unorganized container files
This commit is contained in:
2025-10-16 11:40:25 -05:00
parent 7fad76ea9d
commit d30f103209
24 changed files with 1055 additions and 131 deletions

View File

@@ -4,11 +4,15 @@ This document tracks the various agents, tools, and systems used in the AIOS-Pub
## Documentation Tools
### RCEO-AIOS-Public-Tools-DocMaker
### RCEO-AIOS-Public-Tools-DocMaker Container Family
**Purpose**: Documentation generation container with multiple document conversion tools.
**Purpose**: Documentation generation containers with multiple document conversion tools, organized in a layered architecture.
**Container/Stack Name**: RCEO-AIOS-Public-Tools-DocMaker
**Container/Stack Names**:
- RCEO-AIOS-Public-Tools-DocMaker-Base: Base documentation environment
- RCEO-AIOS-Public-Tools-DocMaker-Light: Lightweight documentation tools (fast-starting)
- RCEO-AIOS-Public-Tools-DocMaker-Full: Full documentation with LaTeX-full
- RCEO-AIOS-Public-Tools-DocMaker-Computational: All documentation tools plus computational tools (R, Python, Jupyter, Octave)
**Technology Stack**:
- Base: Debian Bookworm slim
@@ -17,46 +21,97 @@ This document tracks the various agents, tools, and systems used in the AIOS-Pub
- Node.js
- Rust (with Cargo)
- Pandoc
- LaTeX (Full)
- LaTeX (varies by container: light packages in base/full in full)
- mdBook (installed via Cargo)
- mdbook-pdf (installed via Cargo)
- Typst
- Marp CLI
- Markwhen: Interactive text-to-timeline tool
- Spell/Grammar checking:
- Hunspell (with en-US dictionary)
- Aspell (with en dictionary)
- Vale (style and grammar linter)
- Reading time estimation: mdstat
- Additional text processing tools
- Computational tools in Computational container:
- R programming language
- Python scientific stack (pandas, numpy, matplotlib, scipy)
- Jupyter notebooks
- GNU Octave
- bc (command-line calculator)
**Usage**: This container/stack should be used for projects that need to generate finished documentation in various formats (PDF, HTML, presentations, etc.).
**Usage**:
- Use Light container for quick documentation tasks (COO mode)
- Use Full container for complex document generation (COO mode)
- Use Computational container for data analysis and R&D work (CTO mode)
- Base container serves as foundation for other containers
**Docker Configuration**:
- Located in the `Docker/` directory
- Includes Dockerfile and docker-compose.yml
- Each container has its own subdirectory with Dockerfile and docker-compose.yml
- Maps the project root directory to `/workspace` inside the container
- Can be run with `docker-compose up` from the Docker directory
- Uses UID/GID mapping for proper file permissions across environments
- Can be run with `docker-compose up` from each container's directory
**Container Usage Map**:
- Light container: COO mode, quick documentation tasks (CV, proposals, governance docs)
- Full container: COO mode, complex document generation with LaTeX-full
- Computational container: CTO mode, data analysis and R&D work (R, Python, Jupyter)
**Commands to run**:
# Using the wrapper script (recommended - handles UID/GID automatically):
```bash
# Build and start the container
cd Docker
# Build and start the lightweight container (COO mode)
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
./docker-compose-wrapper.sh up --build
# Build and start the full documentation container (COO mode)
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Full
./docker-compose-wrapper.sh up --build
# Build and start the computational container (CTO mode)
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational
./docker-compose-wrapper.sh up --build
# Run commands in containers with automatic user mapping:
./docker-compose-wrapper.sh run docmaker-light [command] # Light container
./docker-compose-wrapper.sh run docmaker-full [command] # Full container
./docker-compose-wrapper.sh run docmaker-computational [command] # Computational container
```
# Using docker-compose directly (requires manual environment variables):
```bash
# Set environment variables for proper file permissions
export LOCAL_USER_ID=$(id -u)
export LOCAL_GROUP_ID=$(id -g)
# Build and start containers
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
docker-compose up --build
# Or to run commands directly
docker-compose run docmaker [command]
# Example usage of documentation tools:
# Example usage of documentation tools with wrapper script:
# Spell checking with hunspell
docker-compose run docmaker hunspell -d en_US document.md
./docker-compose-wrapper.sh run docmaker-full hunspell -d en_US document.md
# Create timeline with Markwhen
./docker-compose-wrapper.sh run docmaker-full markwhen input.mw --output output.html
# Grammar/style checking with Vale
docker-compose run docmaker vale document.md
./docker-compose-wrapper.sh run docmaker-full vale document.md
# Reading time estimation
docker-compose run docmaker python3 -m mdstat document.md
./docker-compose-wrapper.sh run docmaker-full python3 -m mdstat document.md
# Run R analysis (in computational container)
./docker-compose-wrapper.sh run docmaker-computational Rscript analysis.R
# Run Python analysis (in computational container)
./docker-compose-wrapper.sh run docmaker-computational python analysis.py
# Check spelling with aspell
docker-compose run docmaker aspell -c document.md
```
./docker-compose-wrapper.sh run docmaker-full aspell -c document.md
```
**User Management**: All containers run as non-root user `ReachableCEO-Tools` with UID/GID mapping from the host environment to ensure proper file permissions.