feat: add container update action with image pull and recreate 🚀#4588
feat: add container update action with image pull and recreate 🚀#4588
Conversation
…tService implementation Adds UpdateProgress type, new Client interface methods (ImagePull, ContainerInspectRaw, ContainerRemove, ContainerCreate, ServiceUpdate), Docker SDK thin wrappers, and the UpdateContainer orchestration logic that handles image pull, container recreation, and swarm service updates with progress reporting. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
K8sClient now implements ImagePull, ContainerInspectRaw, ContainerRemove, ContainerCreate, and ServiceUpdate (all return "not supported" errors). K8sClientService now implements UpdateContainer similarly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ainer update progress Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…sistant Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Bugs:
Design:
Minor:
|
|
Review: feat/container-update
|
Instead of retrying with normal backoff when the API key is invalid, pause for 1 hour before retrying to avoid hammering the server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ReviewBugs / Design Issues
Minor
|
Check 'Status: Downloaded newer image' instead of per-layer events to reliably detect when a new image was actually pulled. Fixes false negatives when all layers are cached but the manifest changed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Only preserve network names and aliases in EndpointsConfig, not runtime fields like IP addresses, gateways, and MAC addresses that can cause conflicts on recreate. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…face Define DockerUpdateClient interface in docker_service.go that extends container.Client with ImagePull, ContainerInspectRaw, ContainerRemove, ContainerCreate, and ServiceUpdate. Removes K8s stubs that just returned errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cales Display "Update Service" instead of "Update" in the dropdown when the container is a Docker Swarm service. Add update and error i18n keys to all 17 locale files with proper translations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Critical bug: Minor issues:
|
- Buffer progressCh (50) in HTTP handler to prevent goroutine leak when SSE client disconnects mid-update - Add defer close(progressCh) in K8s UpdateContainer to prevent hung requests in K8s mode - Add nil check for NetworkSettings in ContainerCreate to prevent panic on containers with unusual configs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… cases - Extract findContainerWithActions helper in actions.go to deduplicate auth/permission check block shared by containerActions and containerUpdate - Change ContainerInspectRaw(any) to ContainerInspect(InspectResponse) and ContainerCreate(any) to ContainerCreate(InspectResponse), eliminating double type assertions and the any parameter - Collapse near-identical done/up-to-date switch cases in containerActions.ts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Critical issues:
|
…tion Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Critical issues:
|
Summary
enableActionsconfig flag, same as start/stop/restartupdate_containercloud tool for Dozzle CloudTest plan
go test -race ./...passespnpm testandpnpm typecheckpass🤖 Generated with Claude Code