2.5 KiB
2.5 KiB
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/hadolintfor Dockerfile validationkoalaman/shellcheck:stablefor shell script validationcytopia/yamllint:latestfor YAML validation
The validation process is performed automatically during development to ensure continuous compliance with best practices.