Locally inspecting the Docker image built by Binder

I have a repository that provides its own Dockerfile. I am currently debugging a scenario, where both the locally built image (with docker --build) and the local repo2docker build produce the correct environment, but the image on Binder produces a faulty one. In this case it would be really handy to be able to do docker pull to get the image that Binder built and inspect its contents to see what is going wrong. Is that possible?

These images are not generally publicly available, so you cannot generally pull them. Do you have a link to a repo and/or a more specific description of what’s ‘faulty’?

All Binder does is run repo2docker, which in the case of a Dockerfile also means running docker build with no real changes beyond specifying some build arguments ($NB_USER, etc.). The uid/gid options could be relevant, since they are likely to be different on binder than on your local builds.

Without more information, most often, the reason for differences is because of caching (i.e. the Binder build was done a month ago, but your local builds today work fine (or vice versa). If that’s the case, it usually means there is insufficient pinning of environments because you actually need something more recent (or older) than is specified, and are relying on time to resolve the correct versions. For instance pip install pandas will do a different thing today than a month from now or a year ago.

1 Like