[GH-ISSUE #1198] [Feature Request] Display Real-Time Docker Image Pull Progress in UI #7733

Open
opened 2026-04-27 21:43:02 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @dojoca on GitHub (Feb 14, 2026).
Original GitHub issue: https://github.com/moghtech/komodo/issues/1198

Problem Statement

When deploying stacks with large Docker images, clicking the "Deploy" button can result in a long wait with no visible feedback to the user. The UI appears to hang or be unresponsive while Docker is pulling multi-gigabyte images in the background. This creates a poor user experience as there's no way to know:

  • If the deployment is actually progressing
  • How long it will take
  • Which image is currently being pulled
  • If something has stalled or failed

Current Behavior

  • User clicks "Deploy" or "Pull Images" on a stack
  • UI shows the action is running but provides no progress details
  • User must wait with no feedback until the entire operation completes
  • For large images (especially on slower connections), this can take many minutes

Proposed Solution

Stream real-time Docker image pull progress to the UI, similar to what you see in a terminal when running docker pull or docker compose pull. This would include:

Essential Information:

  • Current layer being downloaded (e.g., "Pulling layer 3/8")
  • Download progress percentage and size (e.g., "Downloading: 234MB / 1.2GB [45%]")
  • Which image is being pulled (when multiple images in a stack)
  • Current status (Pulling, Extracting, Verifying, Complete)

Display Options:

  1. Progress bar showing overall completion percentage
  2. Log-style output in the Updates/Logs section showing Docker's native pull output
  3. Status indicator on the resource card showing "Pulling images..." with progress

Benefits

  1. Better UX: Users know the deployment is actually working
  2. Time management: Users can estimate how long to wait
  3. Troubleshooting: Easier to identify stalled downloads or network issues
  4. Transparency: Users can see which specific layers or images are causing delays

Technical Considerations

The underlying docker compose pull and docker pull commands already output progress information to stdout. The solution would need to:

  • Stream command output from Periphery to Core
  • Parse Docker's progress format (or stream raw)
  • Display in the UI via websocket updates
  • Handle multiple concurrent pulls gracefully

Similar Existing Features

Komodo already streams logs and update information via websockets. This feature would extend that pattern to include Docker pull operations.

Alternatives Considered

  1. Periodic polling: Show "Still pulling..." every X seconds (less informative)
  2. External monitoring: Direct users to use tools like Dozzle (poor integrated experience)
  3. Pre-pull warnings: Warn about large images before deploy (doesn't solve the visibility issue)

Use Cases

  • Deploying stacks with ML models or large application images (>1GB)
  • Limited bandwidth environments where pulls take 10+ minutes
  • Multi-service stacks pulling several large images sequentially
  • Debugging stuck or failed image pulls
  • #244 - Improved PullStack logging (addressed error messages but not progress)
  • #99 - Pull images functionality (related to pull operations)

Environment:

  • Happens with both Stack and Deployment resources
  • Affects both container-based and systemd Periphery agents
  • More noticeable on slower networks or with large images

Priority: Quality of Life / User Experience improvement

Originally created by @dojoca on GitHub (Feb 14, 2026). Original GitHub issue: https://github.com/moghtech/komodo/issues/1198 ## Problem Statement When deploying stacks with large Docker images, clicking the "Deploy" button can result in a long wait with no visible feedback to the user. The UI appears to hang or be unresponsive while Docker is pulling multi-gigabyte images in the background. This creates a poor user experience as there's no way to know: - If the deployment is actually progressing - How long it will take - Which image is currently being pulled - If something has stalled or failed ## Current Behavior - User clicks "Deploy" or "Pull Images" on a stack - UI shows the action is running but provides no progress details - User must wait with no feedback until the entire operation completes - For large images (especially on slower connections), this can take many minutes ## Proposed Solution Stream real-time Docker image pull progress to the UI, similar to what you see in a terminal when running `docker pull` or `docker compose pull`. This would include: **Essential Information:** - Current layer being downloaded (e.g., "Pulling layer 3/8") - Download progress percentage and size (e.g., "Downloading: 234MB / 1.2GB [45%]") - Which image is being pulled (when multiple images in a stack) - Current status (Pulling, Extracting, Verifying, Complete) **Display Options:** 1. **Progress bar** showing overall completion percentage 2. **Log-style output** in the Updates/Logs section showing Docker's native pull output 3. **Status indicator** on the resource card showing "Pulling images..." with progress ## Benefits 1. **Better UX**: Users know the deployment is actually working 2. **Time management**: Users can estimate how long to wait 3. **Troubleshooting**: Easier to identify stalled downloads or network issues 4. **Transparency**: Users can see which specific layers or images are causing delays ## Technical Considerations The underlying `docker compose pull` and `docker pull` commands already output progress information to stdout. The solution would need to: - Stream command output from Periphery to Core - Parse Docker's progress format (or stream raw) - Display in the UI via websocket updates - Handle multiple concurrent pulls gracefully ## Similar Existing Features Komodo already streams logs and update information via websockets. This feature would extend that pattern to include Docker pull operations. ## Alternatives Considered 1. **Periodic polling**: Show "Still pulling..." every X seconds (less informative) 2. **External monitoring**: Direct users to use tools like Dozzle (poor integrated experience) 3. **Pre-pull warnings**: Warn about large images before deploy (doesn't solve the visibility issue) ## Use Cases - Deploying stacks with ML models or large application images (>1GB) - Limited bandwidth environments where pulls take 10+ minutes - Multi-service stacks pulling several large images sequentially - Debugging stuck or failed image pulls ## Related Issues - #244 - Improved PullStack logging (addressed error messages but not progress) - #99 - Pull images functionality (related to pull operations) --- **Environment:** - Happens with both Stack and Deployment resources - Affects both container-based and systemd Periphery agents - More noticeable on slower networks or with large images **Priority:** Quality of Life / User Experience improvement
Author
Owner
<!-- gh-comment-id:3950711764 --> @Snuupy commented on GitHub (Feb 24, 2026): also mentioned here: https://discord.com/channels/1272479750065094760/1272480037026660362/1396944037184802928 https://discord.com/channels/1272479750065094760/1272480037026660362/1396944037184802928 https://discord.com/channels/1272479750065094760/1272479750065094763/1469149711465451640 and related: https://github.com/moghtech/komodo/issues/77
Author
Owner

@LordFransie commented on GitHub (Mar 9, 2026):

This would be a major QOL update for me.

<!-- gh-comment-id:4025472290 --> @LordFransie commented on GitHub (Mar 9, 2026): This would be a major QOL update for me.
Author
Owner

@cjlwo commented on GitHub (Mar 31, 2026):

Would also like to see such a feature; not knowing if an image is taking a long time to download, if a deploy failed, or if something is hung, is problematic.

<!-- gh-comment-id:4165037866 --> @cjlwo commented on GitHub (Mar 31, 2026): Would also like to see such a feature; not knowing if an image is taking a long time to download, if a deploy failed, or if something is hung, is problematic.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/komodo#7733