diff --git a/CHANGELOG.md b/CHANGELOG.md index a0a2134..40480e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ - **Hub mode welcome page**: Shows three options instead of two — "Visszaállítás a Hub-ról" (auto-connects to Hub), "Helyi mentés keresése" (local drive scan), "Friss telepítés" (fresh config download) - **Auto-process fallback**: If Hub auto-connect fails, the wizard clears the pre-seeded password and falls back to the manual form with the error displayed +#### Fixed +- **Bind mount write**: `atomicWriteFile()` now falls back to direct write when rename fails (fixes "device or resource busy" on Docker bind-mounted `controller.yaml`) + ### v0.31.6 — UI: Brand-consistent button & card styling (2026-02-25) #### Changed diff --git a/controller/internal/setup/handlers.go b/controller/internal/setup/handlers.go index b4cb32e..b2a0a0d 100644 --- a/controller/internal/setup/handlers.go +++ b/controller/internal/setup/handlers.go @@ -1032,7 +1032,8 @@ func atomicWriteFile(path string, data []byte, perm os.FileMode) error { } if err := os.Rename(tmp, path); err != nil { os.Remove(tmp) - return err + // Rename fails on bind-mounted files (EBUSY). Fall back to direct write. + return os.WriteFile(path, data, perm) } return nil }