This commit significantly enhances all documentation files in the ToolboxStack to follow the new beautiful documentation standards: - Updated README.md with comprehensive table of contents, beautiful formatting and icon usage - Enhanced QWEN.md to include instructions on using toolbox-qadocker:release-current for audits - Added section about beautiful documentation requirements (icons, headers, tables, graphics) - Updated toolbox-qadocker README with beautiful formatting, tables, and icon usage - Enhanced toolbox-base README with detailed tables and beautiful formatting - Improved WORKLOG.md with consistent formatting using icons and tables - Added change logs to all documentation files - Followed beautiful documentation principles with consistent icon usage, tables, headers, etc. All documentation now follows the beautiful documentation standard with: - ✨ Use icons (emoji or font-awesome) for better visual appeal - 📊 Use tables to organize information clearly - 🖼️ Include graphics when helpful (ASCII art, diagrams, or links to visual assets) - 🏷️ Use headers to structure content logically - 📝 Include comprehensive change logs with version history - 📋 Include checklists for setup processes - 📊 Add comparison tables when relevant - 📌 Cross-reference related documents clearly
139 lines
4.6 KiB
Markdown
139 lines
4.6 KiB
Markdown
# 🔍 Toolbox-QADocker
|
|
|
|
> **Docker Image Auditing & Quality Assurance**
|
|
|
|
Toolbox-QADocker is a specialized Docker image designed for auditing and quality assurance of Docker images and related files. It serves as the bootstrap image that audits the toolbox-base and other custom toolboxes in the TSYSDevStack ecosystem.
|
|
|
|
---
|
|
|
|
## 🎯 Purpose
|
|
|
|
| 🧰 Feature | 📋 Description |
|
|
|------------|----------------|
|
|
| 🔍 **Docker Image Auditing** | Equipped with tools like Hadolint, Dive, and Trivy for comprehensive Docker image analysis |
|
|
| 📜 **Shell Script Validation** | Includes ShellCheck for validating shell scripts |
|
|
| 🔁 **Bootstrap Tool** | Used to audit the base and other custom toolboxes during development |
|
|
| ⚡ **Quick Rebuilds** | Designed to be minimal and quick to rebuild when needed |
|
|
|
|
---
|
|
|
|
## 🛠️ Tools Included
|
|
|
|
| 🛠️ Tool | 📝 Description |
|
|
|---------|----------------|
|
|
| 🐳 **[Hadolint](https://github.com/hadolint/hadolint)** | Dockerfile linter that checks for best practices |
|
|
| 🐚 **[ShellCheck](https://www.shellcheck.net/)** | Static analysis tool for shell scripts |
|
|
| 🛡️ **[Trivy](https://github.com/aquasecurity/trivy)** | Comprehensive vulnerability scanner for containers |
|
|
| 🐳 **Docker Client** | Command-line interface for Docker |
|
|
| 🔍 **[Dive](https://github.com/wagoodman/dive)** | Tool to explore layers in Docker images |
|
|
| 🏗️ **Buildctl** | BuildKit client for advanced builds |
|
|
| 🐳 **[Dockerlint](https://github.com/RedCoolBeans/dockerlint)** | Additional Dockerfile linter |
|
|
| 🟨 **[Node.js](https://nodejs.org/)** | JavaScript runtime for additional tooling |
|
|
|
|
---
|
|
|
|
## 📊 Image Details
|
|
|
|
| 🧩 Aspect | 📌 Value |
|
|
|-----------|----------|
|
|
| 🏗️ **Base Image** | Ubuntu 24.04 |
|
|
| 🔐 **Foundation** | Does NOT use the toolbox-base as foundation (unlike other toolboxes) |
|
|
| 👤 **Non-Root User** | Contains a non-root user `qadocker` for security |
|
|
| ⚡ **Optimization** | Optimized for fast rebuilds and audits |
|
|
|
|
---
|
|
|
|
## 🚀 Usage
|
|
|
|
### 🏗️ Build the Image
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
### 🖥️ Run the Container Interactively
|
|
```bash
|
|
./run.sh
|
|
```
|
|
|
|
### 🐳 Run Directly with Docker
|
|
```bash
|
|
docker run -it --rm \
|
|
-v "$(pwd)":/workspace \
|
|
-w /workspace \
|
|
tsysdevstack-toolboxstack-toolbox-qadocker:dev \
|
|
bash
|
|
```
|
|
|
|
### 🔍 Run QA on a Dockerfile
|
|
```bash
|
|
docker run --rm -v /path/to/project:/workspace -w /workspace tsysdevstack-toolboxstack-toolbox-qadocker:dev hadolint --config .hadolint.yaml Dockerfile
|
|
```
|
|
|
|
### 🐚 Run QA on Shell Scripts
|
|
```bash
|
|
docker run --rm -v /path/to/project:/workspace -w /workspace tsysdevstack-toolboxstack-toolbox-qadocker:dev shellcheck script.sh
|
|
```
|
|
|
|
### 📊 Run Comprehensive Audit
|
|
```bash
|
|
# Using the custom audit script
|
|
docker run --rm -v /path/to/project:/workspace -w /workspace tsysdevstack-toolboxstack-toolbox-qadocker:dev bash -c "./audit-dockerfile.sh Dockerfile"
|
|
```
|
|
|
|
---
|
|
|
|
## 👤 Non-Root User
|
|
|
|
- 🏃♂️ The container runs as the `qadocker` user by default
|
|
- 🛡️ For security purposes, this reduces attack surface
|
|
- 🧑💻 If you need root access, run the container with `--user root`
|
|
|
|
---
|
|
|
|
## 🔒 Security
|
|
|
|
| 🔒 Security Aspect | 📋 Details |
|
|
|-------------------|------------|
|
|
| 🛡️ **Best Practices** | Built with security best practices in mind |
|
|
| 🔓 **Attack Surface** | Minimal attack surface |
|
|
| 👤 **User Privileges** | Non-root user for running tools |
|
|
| 🛡️ **Scanning** | Regular security scanning with Trivy |
|
|
|
|
---
|
|
|
|
## 🛠️ Development
|
|
|
|
- 🧩 This image is designed to be simple to modify and rebuild
|
|
- 🧱 The Dockerfile contains all necessary tool installations
|
|
- 🚀 Optimized for caching and build speed
|
|
- 🧪 Includes custom audit scripts for Dockerfile best practices
|
|
|
|
---
|
|
|
|
## 🔍 QA Process
|
|
|
|
| ✅ QA Step | 📝 Description |
|
|
|------------|----------------|
|
|
| 🐳 **Hadolint Validation** | Validating the Dockerfile with Hadolint |
|
|
| 🐚 **ShellCheck** | Checking shell scripts with ShellCheck |
|
|
| 🛡️ **Trivy Scan** | Running filesystem scans with Trivy |
|
|
| 🧪 **Tool Verification** | Verifying all tools are properly installed |
|
|
| 📊 **Custom Audit** | Using custom scripts to check for best practices |
|
|
|
|
---
|
|
|
|
## 📈 Audit Capabilities
|
|
|
|
Toolbox-QADocker excels at identifying:
|
|
|
|
- ❌ **Security Issues**: Common vulnerabilities and misconfigurations
|
|
- ⚙️ **Best Practices**: Adherence to Dockerfile best practices
|
|
- 🔒 **Root Usage**: Minimizing root operations in Docker builds
|
|
- 🚀 **Optimization**: Layer efficiency and image size optimization
|
|
- 🛡️ **Configuration Issues**: Potential security misconfigurations
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
See [LICENSE](../../LICENSE) for full terms. |