# TSYS Group Development Stack - Toolboxes - DocsAndDiagrams ## Overview This project implements a Docker-based document production workhorse as specified in the PRD.md. The container image `tsysdevstack-toolboxes-docs` provides a comprehensive set of tools for document generation, including pandoc, mdbook, typst, marp, markwhen, kroki cli, quarto, bibtool, vale, and more. ## Components Created ### Dockerfile - Production-ready image based on Debian stable - Uses tsysdevstack user for all runtime operations - Implements multi-stage build with security best practices - Uses mise to manage language runtimes (Python, Node.js, Rust) - Installs all required tools using version-pinned packages ### Scripts - **build.sh**: Builds the Docker image using Docker Buildx for multi-platform support - **run.sh**: Simplifies running the container with customizable options - **test.sh**: Comprehensive test suite to verify all tools are properly installed - **validate.sh**: Validates files using hadolint, shellcheck, and yamllint ### Configuration Files - **docker-compose.yml**: Simplifies container orchestration - **devcontainer.json**: Enables development container support in VS Code ## Quality Assurance & Compliance ### Hadolint Compliance All Dockerfile issues have been resolved to achieve 100% compliance: - **Fixed**: Pin versions in apt-get install commands - **Fixed**: Added --no-install-recommends to apt-get commands - **Fixed**: Set SHELL option -o pipefail before RUN with pipes - **Fixed**: Consolidated consecutive RUN instructions to address DL3059 - **Verified**: No warnings or errors from hadolint ### Shellcheck Compliance All shell scripts have been validated to achieve 100% compliance: - **run.sh**: No issues detected - **build.sh**: Addressed SC2086 (word splitting) with appropriate handling - **test.sh**: No issues detected - **validate.sh**: No issues detected - **Verified**: All scripts pass shellcheck validation ### Yamllint Compliance The docker-compose.yml file has been validated to achieve 100% compliance: - **Fixed**: Added document start marker (---) - **Fixed**: Removed trailing spaces - **Fixed**: Ensured newline at end of file - **Verified**: No warnings or errors from yamllint ## Validation Process All validation tools are used via Docker images as specified: - `hadolint/hadolint` for Dockerfile validation - `koalaman/shellcheck:stable` for shell script validation - `cytopia/yamllint:latest` for YAML validation The validation process is performed automatically during development to ensure continuous compliance with best practices.