Skip to content

Commit

Permalink
Merge pull request #47484 from akerouanton/25.0-c8d-pull-fslayer
Browse files Browse the repository at this point in the history
[25.0 backport] c8d/pull: Progress fixes
  • Loading branch information
thaJeztah committed Mar 1, 2024
2 parents 4e7d853 + be59afc commit 3fa0ced
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
5 changes: 5 additions & 0 deletions daemon/containerd/image_pull.go
Expand Up @@ -21,6 +21,7 @@ import (
"github.com/docker/docker/internal/compatcontext"
"github.com/docker/docker/pkg/progress"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/pkg/stringid"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors"
)
Expand Down Expand Up @@ -117,6 +118,10 @@ func (i *ImageService) pullTag(ctx context.Context, ref reference.Named, platfor
progress.Message(out, "", distribution.DeprecatedSchema1ImageMessage(ref))
sentSchema1Deprecation = true
}
if images.IsLayerType(desc.MediaType) {
id := stringid.TruncateID(desc.Digest.String())
progress.Update(out, id, "Pulling fs layer")
}
if images.IsManifestType(desc.MediaType) {
if !sentPullingFrom {
var tagOrDigest string
Expand Down
3 changes: 3 additions & 0 deletions daemon/containerd/progress.go
Expand Up @@ -135,6 +135,9 @@ func (p pullProgress) UpdateProgress(ctx context.Context, ongoing *jobs, out pro
}
key := remotes.MakeRefKey(ctx, j)
if info, ok := pulling[key]; ok {
if info.Offset == 0 {
continue
}
out.WriteProgress(progress.Progress{
ID: stringid.TruncateID(j.Digest.Encoded()),
Action: "Downloading",
Expand Down
5 changes: 5 additions & 0 deletions pkg/streamformatter/streamformatter.go
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/json"
"fmt"
"io"
"sync"

"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/pkg/progress"
Expand Down Expand Up @@ -109,6 +110,7 @@ type progressOutput struct {
sf formatProgress
out io.Writer
newLines bool
mu sync.Mutex
}

// WriteProgress formats progress information from a ProgressReader.
Expand All @@ -120,6 +122,9 @@ func (out *progressOutput) WriteProgress(prog progress.Progress) error {
jsonProgress := jsonmessage.JSONProgress{Current: prog.Current, Total: prog.Total, HideCounts: prog.HideCounts, Units: prog.Units}
formatted = out.sf.formatProgress(prog.ID, prog.Action, &jsonProgress, prog.Aux)
}

out.mu.Lock()
defer out.mu.Unlock()
_, err := out.out.Write(formatted)
if err != nil {
return err
Expand Down

0 comments on commit 3fa0ced

Please sign in to comment.