116 lines
3.0 KiB
Markdown
116 lines
3.0 KiB
Markdown
# TSYS DevStack Toolbox Base Container
|
|
|
|
This is the base development container for the TSYS DevStack project. It provides a secure, non-root development environment with common utilities and tools for day-to-day development tasks.
|
|
|
|
## Overview
|
|
|
|
- **Base Image**: Debian stable
|
|
- **Default User**: `tsysdevstack` (non-root)
|
|
- **Default Shell**: Fish shell
|
|
- **Security**: No sudo/su access for the tsysdevstack user
|
|
- **Purpose**: Interactive development and container orchestration
|
|
- **Docker Client**: Includes Docker CLI for orchestrating containers on the host
|
|
|
|
## Pre-installed Tools
|
|
|
|
### Development & Version Control
|
|
- Git (`git`)
|
|
- Vim editor (`vim`)
|
|
|
|
### Network & Web Tools
|
|
- cURL (`curl`)
|
|
- Wget (`wget`)
|
|
- Ping (`iputils-ping`)
|
|
- Netcat (`netcat-openbsd`)
|
|
- DNS utilities (`bind9-dnsutils` - includes `nslookup`, `dig`, etc.)
|
|
|
|
### Container Orchestration
|
|
- Docker Client (`docker.io` and `docker-cli`)
|
|
|
|
### Data Processing & Formatting
|
|
- JQ for JSON processing (`jq`)
|
|
- Ripgrep for fast searching (`ripgrep`)
|
|
- FZF for fuzzy finding (`fzf`)
|
|
- Less pager (`less`)
|
|
|
|
### Archiving & File Management
|
|
- Zip/Unzip (`zip`, `unzip`)
|
|
- Rsync for file sync (`rsync`)
|
|
- Tree for directory visualization (`tree`)
|
|
|
|
### System Monitoring & Debugging
|
|
- HTop system monitor (`htop`)
|
|
- Lsof for listing open files (`lsof`)
|
|
- Strace for system call tracing (`strace`)
|
|
- Tcpdump for network packet capture (`tcpdump`)
|
|
- Procps for process utilities (`procps`)
|
|
|
|
### Security & Encryption
|
|
- GnuPG for encryption (`gnupg2`, `gnupg-agent`)
|
|
|
|
### SSH
|
|
- OpenSSH client (`openssh-client`)
|
|
|
|
## Usage
|
|
|
|
### Building the Image
|
|
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
### Running the Container
|
|
|
|
```bash
|
|
./run.sh
|
|
```
|
|
|
|
### Running Commands
|
|
|
|
```bash
|
|
# Run a single command
|
|
docker run --rm tsysdevstack-toolboxstack-toolbox-base [command]
|
|
|
|
# Run with interactive shell
|
|
docker run -it --rm tsysdevstack-toolboxstack-toolbox-base
|
|
```
|
|
|
|
### Testing
|
|
|
|
To verify all tools work properly:
|
|
|
|
```bash
|
|
./test.sh
|
|
```
|
|
|
|
## Security
|
|
|
|
- The container runs as the `tsysdevstack` user, not root
|
|
- No sudo or su access available to prevent privilege escalation
|
|
- Built with security best practices in mind
|
|
- Regular vulnerabilities are monitored and addressed in base image updates
|
|
|
|
## Quality of Life Features
|
|
|
|
- Fish shell provides advanced command-line features
|
|
- FZF enables fuzzy-finding for faster navigation
|
|
- Ripgrep offers fast file searching capabilities
|
|
- HTop provides an interactive process viewer
|
|
- All common development tools are pre-installed
|
|
|
|
## Purpose
|
|
|
|
This container is designed for:
|
|
- Interactive development work
|
|
- Container orchestration tasks
|
|
- Running as a headless orchestrator for other specialized containers
|
|
- Providing a consistent development environment
|
|
|
|
It is **not** designed for:
|
|
- Running system-wide language runtimes (Python, Rust, Node, etc.) - those will be in specialized containers
|
|
- Production workloads
|
|
- Long-running services
|
|
|
|
## Integration with DevStack
|
|
|
|
This container serves as the base for the TSYS DevStack toolbox stack and will be used to orchestrate other specialized containers in the development lifecycle. |