- Update ToolboxStack/output/toolbox-template/.devcontainer/devcontainer.json with improved container settings - Update ToolboxStack/output/toolbox-template/PROMPT with enhanced instructions - Update ToolboxStack/output/toolbox-template/SEED with updated seed data - Update ToolboxStack/output/toolbox-template/docker-compose.yml with enhanced service definitions - Add ToolboxStack/output/toolbox-template/README.md with documentation This enhances the toolbox template for creating new developer environments.
107 lines
2.9 KiB
Markdown
107 lines
2.9 KiB
Markdown
# 🧰 TSYSDevStack Toolbox Template
|
|
|
|
Template for creating new toolboxes that extend from the `toolbox-base` image.
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
1. **Create a new toolbox**
|
|
```bash
|
|
cp -r /path/to/toolbox-template /path/to/new-toolbox
|
|
cd /path/to/new-toolbox
|
|
```
|
|
|
|
2. **Customize the toolbox**
|
|
- Edit `Dockerfile` to add toolbox-specific tooling
|
|
- Modify `docker-compose.yml` to adjust service configuration
|
|
- Update `SEED` to define the toolbox's purpose and goals
|
|
|
|
3. **Build the toolbox**
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
4. **Start the toolbox**
|
|
```bash
|
|
./run.sh up
|
|
```
|
|
|
|
5. **Access the toolbox**
|
|
```bash
|
|
docker exec -it tsysdevstack-toolboxstack-<toolbox-name> zsh
|
|
```
|
|
|
|
6. **Stop the toolbox**
|
|
```bash
|
|
./run.sh down
|
|
```
|
|
|
|
---
|
|
|
|
## 🧱 Architecture
|
|
|
|
- **Base Image**: Extends from `tsysdevstack-toolboxstack-toolbox-base:release-current`
|
|
- **User**: Runs as non-root `toolbox` user (UID/GID mapped to host)
|
|
- **Workspace**: Mounts current directory to `/workspace` (read/write)
|
|
- **Runtime**: Inherits all tooling from base plus toolbox-specific additions
|
|
|
|
---
|
|
|
|
## 🛠️ Customization
|
|
|
|
### Dockerfile
|
|
Extend the base image with toolbox-specific tooling:
|
|
```dockerfile
|
|
# Extend from the toolbox-base image
|
|
FROM tsysdevstack-toolboxstack-toolbox-base:release-current
|
|
|
|
# Add toolbox-specific packages or configurations
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
specific-package \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
```
|
|
|
|
### docker-compose.yml
|
|
Adjust service configuration for toolbox-specific needs:
|
|
```yaml
|
|
services:
|
|
my-toolbox:
|
|
# Inherits all base configuration
|
|
# Add toolbox-specific volumes, ports, etc.
|
|
volumes:
|
|
- ./custom-config:/home/toolbox/.config/custom-tool
|
|
```
|
|
|
|
### SEED
|
|
Define the toolbox's purpose and goals:
|
|
```markdown
|
|
- Describe what this toolbox should provide (languages, CLIs, workflows)
|
|
- List required base image modifications or additional mounts
|
|
- Note verification or testing expectations specific to this toolbox
|
|
```
|
|
|
|
---
|
|
|
|
## 📂 Project Layout
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `Dockerfile` | Extends base image with toolbox-specific tooling |
|
|
| `docker-compose.yml` | Service configuration for the toolbox |
|
|
| `build.sh` | Wrapper around `docker build` with host UID/GID mapping |
|
|
| `run.sh` | Helper to bring the service up/down |
|
|
| `.devcontainer/devcontainer.json` | VS Code remote container definition |
|
|
| `SEED` | Defines the toolbox's purpose and goals |
|
|
| `PROMPT` | LLM onboarding prompt for future contributors |
|
|
|
|
---
|
|
|
|
## 🤝 Collaboration Notes
|
|
|
|
- Inherits all collaboration policies from `toolbox-base`
|
|
- Document toolbox-specific additions in `README.md` and `PROMPT`
|
|
- Update `SEED` only when the high-level objectives change
|
|
- Prefer aqua/mise for new tooling to keep installations reproducible
|
|
- Keep documentation synchronized for future contributors |