Files
home/Projects/kompose/CHANGELOG.md
2025-10-11 10:24:25 +02:00

90 lines
3.1 KiB
Markdown

# Changelog
All notable changes to Kompose will be documented in this file.
## [Unreleased]
### Added
- **Docker Compose Command Hooks**: Added comprehensive hook system for all Docker Compose commands
- Pre and post hooks for: `up`, `down`, `start`, `stop`, `restart`, `build`, `pull`, `logs`, and more
- Hooks receive full command arguments as parameters
- Post-command hooks only execute on successful command execution
- Consistent with existing database hooks pattern
- **Hook Template**: Added `hooks.sh.template` as a comprehensive reference for creating custom hooks
- Includes all available hook types with examples
- Provides utility functions and best practices
- Serves as a starting point for new stacks
### Changed
- **Documentation**: Completely rewrote hooks documentation (`docs/content/3.guide/hooks.md`)
- Added comprehensive examples for all hook types
- Included real-world use cases (monitoring, backups, cache warming)
- Added troubleshooting section
- Added security considerations
- Added best practices and advanced patterns
- **Core Script**: Enhanced `execute_stack_command()` function in `kompose.sh`
- Added hook execution before and after Docker Compose commands
- Improved error handling and exit code management
- Hooks properly execute in dry-run mode
### Documentation Updates
- Updated CLI help text with complete list of Docker Compose command hooks
- Added hook execution flow diagrams
- Expanded examples section with practical use cases
- Added advanced patterns for conditional execution and hook chaining
## Hook System
### Available Hooks
**Database Hooks:**
- `hook_pre_db_export` - Before database export
- `hook_post_db_export` - After database export (receives dump file path)
- `hook_pre_db_import` - Before database import (receives dump file path)
- `hook_post_db_import` - After database import (receives dump file path)
**Docker Compose Command Hooks:**
- `hook_pre_<command>` - Before any Docker Compose command
- `hook_post_<command>` - After any Docker Compose command (only on success)
Supported commands: `up`, `down`, `start`, `stop`, `restart`, `build`, `pull`, `logs`, `ps`, `exec`, `run`, `create`, `kill`, `pause`, `unpause`, `port`, `top`
### Usage Examples
```bash
# Hooks execute automatically for supported commands
./kompose.sh news up -d # Triggers pre_up and post_up hooks
./kompose.sh blog restart # Triggers pre_restart and post_restart hooks
./kompose.sh "*" down # Triggers pre_down and post_down hooks
# Test hooks in dry-run mode
./kompose.sh news up -d --dry-run
```
### Migration Guide
For existing stacks with `hooks.sh`:
1. No changes required - existing database hooks continue to work
2. Optionally add new Docker Compose command hooks as needed
3. See `hooks.sh.template` for all available hooks
4. Refer to updated documentation for examples and best practices
---
## Previous Versions
### [1.0.0] - Initial Release
- Basic Docker Compose stack management
- Database import/export functionality
- Database hooks (pre/post export/import)
- Pattern-based stack selection
- Environment variable management
- Dry-run mode
- Stack listing and filtering