This commit fixes several issues in the toolbox-base Dockerfile that were identified during the audit: - Added SHELL directive with pipefail option where pipes are used - Fixed syntax error in user creation logic by changing 'else if' to 'elif' - Removed problematic 'cd' usage, replacing with 'git -C' for directory-specific operations - Added SHELL directive to second stage where pipes are used - Improved multi-line RUN command formatting with proper semicolon usage These changes resolve the following Hadolint errors: - DL4006: Missing pipefail in RUN commands with pipes - SC1075: Incorrect use of 'else if' instead of 'elif' - DL3003: Usage of 'cd' instead of WORKDIR The Dockerfile now passes Hadolint validation when ignoring version pinning and multiple RUN command warnings, which are expected in this context.
🧰 ToolboxStack
ToolboxStack provides reproducible developer workspaces for TSYSDevStack contributors. The current toolbox-base image captures the daily-driver container environment used across the project.
Contents
| Area | Description | Path |
|---|---|---|
| Dev Container Image | Ubuntu 24.04 base with shell tooling, mise, aqua-managed CLIs, and Docker socket access. | output/toolbox-base/Dockerfile |
| Build Helpers | Wrapper scripts for building (build.sh) and running (run.sh) the Compose service. |
output/toolbox-base/ |
| Devcontainer Config | VS Code Remote Container definition referencing the Compose service. | output/toolbox-base/.devcontainer/devcontainer.json |
| Prompt & Docs | Onboarding prompt plus a feature-rich README for future collaborators. | output/toolbox-base/PROMPT, output/toolbox-base/README.md |
| Work Log | Comprehensive record of work conducted on the ToolboxStack component. | collab/WORKLOG.md |
| Collaboration Notes | Shared design prompts and coordination notes for toolbox evolution. | collab/ |
Quick Start
cd output/toolbox-base
./build.sh # build the image with UID/GID matching your host
./run.sh up # launch the toolbox-base service in the background
docker exec -it tsysdevstack-toolboxstack-toolbox-base zsh
Use ./run.sh down to stop the container when you are finished.
Contribution Tips
- Document every tooling change in both the
PROMPTandREADME.md. - Prefer installing CLIs via
aquaand language runtimes viamiseto keep the environment reproducible. - Keep cache directories (
.build-cache/, mise mounts) out of Git—they are already covered by the repo's.gitignore. - Update the work log in
collab/WORKLOG.mdwith detailed entries for all significant work. - Follow the README maintenance guide in
collab/README-Maintenance.mdto keep documentation up to date.
🧭 Working Agreement
- Stacks stay in sync. When you add or modify automation, update both the relevant stack README and any linked prompts/docs.
- Collab vs Output. Use
collab/for planning and prompts, keep runnable artifacts underoutput/. - Document forward. New workflows should land alongside tests and a short entry in the appropriate README table.
- AI Agent Coordination. Use Qwen agents for documentation updates, code changes, and maintaining consistency across stacks.
- Work Log Maintenance. Keep
collab/WORKLOG.mdup to date with detailed entries including timestamps, activities, challenges, solutions, learnings, and feelings.
🤖 AI Agent
This stack is maintained by ToolboxBot, an AI agent focused on ToolboxStack workspace management.
📄 License
See LICENSE for full terms. Contributions are welcome—open a discussion in the relevant stack's collab/ area to kick things off.