π³ Docker Parallel Pull
Pull multiple Docker images in parallel with retry logic and security features.
π Usage
# Basic usage (uses config.yaml)
go run main.go
# Use custom config file
go run main.go custom-config.yaml
βοΈ Configuration
Configuration is managed through YAML files only. The application looks for config.yaml by default, or you can specify a custom config file as the first argument.
π Files
containers.yaml:
images:
- alpine:latest
- nginx:stable
- redis:7-alpine
config.yaml:
container_file: "containers.yaml"
max_concurrency: 5
timeout: "5m"
max_retries: 3
retry_delay: "2s"
cleanup_after_test: true
show_pull_detail: false
show_progress: true
output_format: "text"
Configuration Options
| Option |
Default |
Description |
container_file |
containers.yaml |
π Container images file |
max_concurrency |
5 |
π Max concurrent pulls |
max_retries |
3 |
π Max retry attempts |
timeout |
5m |
β±οΈ Timeout per pull |
retry_delay |
2s |
β³ Base delay between retries |
output_format |
text |
π Output format (text/json) |
show_pull_detail |
false |
π Show detailed output |
cleanup_after_test |
true |
ποΈ Remove images after pull |
show_progress |
true |
π Show progress bar |
β¨ Features
- π Parallel image pulling with concurrency control
- π Exponential backoff retry logic
- π Real-time progress tracking
- π Security validation (path traversal, input validation)
- π‘οΈ Resource limits (file size, image count, timeouts)
- π JSON and text output formats
π Requirements
- Go 1.24+
- Docker daemon running
π License
MIT