Files
ReachableCEO-AI-Homedir-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/README.md

3.5 KiB

RCEO-AIOS-Public-Tools-DocMaker-Base Container

This container is part of the AIOS-Public project and provides a base documentation generation environment.

Overview

The RCEO-AIOS-Public-Tools-DocMaker-Base container is designed for lightweight documentation generation tasks. It includes a range of tools for creating, converting, and processing documentation in various formats without heavy dependencies like full LaTeX.

Tools Included

Core Tools

  • Base OS: Debian Bookworm slim
  • Shell: Bash
  • Programming Languages:
    • Python 3
    • Node.js
    • Rust (with Cargo)

Documentation Generation

  • Pandoc: Universal document converter
  • Wandmalfarbe pandoc-latex-template: Beautiful Eisvogel LaTeX template for professional PDFs
  • mdBook: Create books from Markdown files
  • mdbook-pdf: PDF renderer for mdBook
  • Typst: Modern typesetting system
  • Marp CLI: Create presentations from Markdown

LaTeX

  • TeX Live: Lightweight LaTeX packages for basic document typesetting

Spell and Grammar Checking

  • Hunspell: Spell checker (with en-US dictionary)
  • Aspell: Spell checker (with en dictionary)
  • Vale: Syntax-aware linter for prose

Text Analysis

  • mdstat: Text statistics including reading time estimation

Usage

Building the Base Container

# From this directory
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base

# Use the wrapper script to automatically detect and set user IDs
./docker-compose-wrapper.sh build

# Or run commands in the base container with automatic user mapping
./docker-compose-wrapper.sh run docmaker-base [command]

# Example: Convert a Markdown file to PDF using pandoc
./docker-compose-wrapper.sh run docmaker-base pandoc input.md -o output.pdf

# Example: Create beautiful PDF using Eisvogel template
./docker-compose-wrapper.sh run docmaker-base pandoc input.md --template eisvogel -o output.pdf

# Example: Create a timeline with Markwhen
./docker-compose-wrapper.sh run docmaker-base markwhen input.mw --output output.html

Using with docker-compose directly

# Set environment variables and run docker-compose directly
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build

# Or export variables first
export LOCAL_USER_ID=$(id -u)
export LOCAL_GROUP_ID=$(id -g) 
docker-compose up

Using the wrapper script

# Build and start the base documentation container with automatic user mapping
./docker-compose-wrapper.sh up --build

# Start without rebuilding
./docker-compose-wrapper.sh up

# View container status
./docker-compose-wrapper.sh ps

# Stop containers
./docker-compose-wrapper.sh down

User ID Mapping (For File Permissions)

The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:

  • Files created inside the container will have the correct ownership on the host
  • No more root-owned files after container operations
  • Works across different environments (development, CI/CD, cloud)

The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:

# Set specific user ID and group ID before running docker-compose
export LOCAL_USER_ID=1000
export LOCAL_GROUP_ID=1000
docker-compose up

Or run with inline environment variables:

LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up

The container runs as a non-root user named ReachableCEO-Tools with the detected host user's UID/GID.