Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Give users feedback on image transfer progress #852

Open
betatim opened this issue May 22, 2019 · 5 comments
Open

Give users feedback on image transfer progress #852

betatim opened this issue May 22, 2019 · 5 comments

Comments

@betatim
Copy link
Member

betatim commented May 22, 2019

Transferring the container image takes a long time during the launch of an already built repository.

Is it possible to show the size of the image and maybe even how much progress we have made fetching it?

This came up in jupyterhub/repo2docker#686 (comment)

@consideRatio
Copy link
Member

Hmmmm hmmmm this would be awesome! The question is now planted in my mind, I have no answer about if it would be possible though.

@sgibson91
Copy link
Member

I thought about the little arrows ==> you get when running docker push. That might be one way to "fool" the users that something is happening if we can create such a progress bar?

@betatim
Copy link
Member Author

betatim commented Jul 1, 2019

#886 is (only) about what happens during a launch.

Image transfer happens at the end of a build (to the registry) and at launch time (from registry to the node) though. During launch I don't think we get access to the progress of the image pull, during the push we know what % has been transferred of each layer.

@minrk
Copy link
Member

minrk commented Jul 2, 2019

repo2docker passes us progress info in the log event. So each "Pushing image..." event actually contains all the layer progress info in metadata. We could be rendering this.

Alternately, we could switch the repo2docker events to be tqdm-rendered terminal progress bars instead of higher-level push metadata to be rendered by the client.

@minrk
Copy link
Member

minrk commented Jul 2, 2019

FWIW, this is what a push event looks like:

{
  "message": "Pushing image\n",
  "progress": {
    "9ef4a26e7b8c": "Pushed",
    "69ac14f57ddb": "Pushed",
    "251480c8f99f": "Pushed",
    "63f60c84dfa3": "Pushed",
    "db13a1a23932": {
      "current": 117909504,
      "total": 758965327
    },
    "8fdb014353db": {
      "current": 6656,
      "total": 71
    },
    "bcd062287812": {
      "current": 2560
    },
    "79c7f8114a96": {
      "current": 4608,
      "total": 2454
    },
    "3502237e46ed": {
      "current": 3584,
      "total": 772
    },
    "2efde80b98e5": "Waiting",
    "d38b6fe234e0": "Waiting",
    "9a6b400e9755": "Waiting",
    "f50c2143d6ab": "Preparing",
    "c4e3746c2dbb": "Waiting",
    "f5675e8b8787": "Waiting",
    "adda4de99b3d": "Waiting",
    "3a034154b7b6": "Waiting",
    "0712b41b4157": "Waiting",
    "a2178543b63f": "Waiting",
    "75e70aa52609": "Preparing",
    "dda151859818": "Waiting",
    "fbd2732ad777": "Waiting",
    "ba9de9d8475e": "Waiting"
  },
  "phase": "pushing"
}

I don't know what all the possible string state values are. Interestingly, current doesn't appear to be on the same scale as total for in-progress layers. Maybe a bug in docker engine?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants