Releases: localrivet/dosync
Releases · localrivet/dosync
v0.3.28
Bug Fixes
- Fix compose file changes being lost during updates - DOSync now properly preserves manual changes made to compose.yaml while running. Previously, edits made while DOSync was running (like adding volume mounts) could be lost when DOSync updated an image tag. (#4)
Technical Details
- File handles are now explicitly closed before writing to prevent stale handle issues (especially with editors like vim that do rename-replace)
- Added
Sync()calls after writing to ensure changes are persisted to disk before subsequent operations
v0.3.27
Release v0.3.27
v0.3.26
Release v0.3.26
v0.3.25
Release v0.3.25
v0.3.24
Release v0.3.24
v0.3.23
Compose File Tag Sync
DOSync now ensures compose files always reflect the actual running container versions, preventing stale image issues on server restart.
Fixed
- Compose file tag sync: DOSync now updates compose file even when container is already running correct version
- Previously compose file could have stale tags, causing issues on server restart
- Now detects tag mismatch and syncs compose file without restarting container
Technical Details
- Added
updateComposeFileImageTag()function for tag-only updates - Uses
LastIndexfor colon handling to support registry ports (e.g.,registry:5000/repo:tag) - Logs sync actions with "SYNC:" prefix for visibility
🤖 Generated with Claude Code
v0.3.22
Critical Fix: Respect compose file name: field
DOSync now correctly uses the name: field from compose.yaml when determining the Docker Compose project name. This prevents network mismatch issues where containers end up on different networks and can't communicate.
Fixed
- CRITICAL: Respect compose file
name:field for project name - Previously DOSync would use directory name, causing containers to be created on wrong network
- Now correctly uses
name:field from compose.yaml (Docker Compose v2.x standard) - Prevents "dns lookup error" issues when services can't find each other
Technical Details
- Updated
extractProjectNameFromCompose()to checkname:field first - Priority order:
name:field → container_name patterns → directory name - Only passes
--project-nameflag when needed, allowing Docker Compose native resolution
🤖 Generated with Claude Code
v0.3.21
Container Reconciliation
DOSync now provides Kubernetes-style reconciliation - if a container crashes or stops between deployments, DOSync will restart it on the next sync interval.
Added
- Container Reconciliation: DOSync checks if all services defined in compose file are running and restarts any stopped/missing containers
- Automatic recovery: Ensures desired state matches actual state every sync interval
Technical Details
- Added
reconcileStoppedContainers()function to syncer - Runs at end of each sync interval after image update checks
- Respects
skip: trueconfiguration - skipped services won't be reconciled - Uses
--env-filefor proper environment variable loading during restarts
🤖 Generated with Claude Code
v0.3.20
Release v0.3.20
v0.3.19
Release v0.3.19