You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our current container runtime interface has these as separate things:
Build
Run
Push
List images
Inspect images
However, the following combinations are what happen a lot of the time:
Build + Run (no push)
Build + Push (No run)
List Images
This was fine when we were doing this with the old docker build api, but I think causes issues now with docker buildx.
The buildkit build cache is different from the image store now, so we must pass --load to buildx during build so our run finds the image without having to pull
However, when we are only doing build + push, this adds unnecessary extra complexity that will literally never be used. It's a copy (IIRC) from buildkit cache to the image store, except the image store will never actually be used. This takes up disk space and nothing else. This is primarily a problem on binderhub installs
I'd like us to eventually support running buildkit directly (which removes the need for a privileged pod), and that would only support build + push. This is actually the ideal for binderhub.
Proposal
I propose we simply add 'push' and 'run' as boolean args to build and deprecate the run and push methods. Additionally, if this feels weird, we can rename build to be something else.
Runtimes that don't support run (like buildkit) can simply error out when run is True.
The text was updated successfully, but these errors were encountered:
Opening as an issue instead of a PR particularly to get feedback from @manics who is the only other person I know who manages a container runtime right now :)
I think this is fine! I vaguely recall thinking about this when working on the original Container Engine abstraction PR, but wanted to minimise changes.
Our current container runtime interface has these as separate things:
However, the following combinations are what happen a lot of the time:
This was fine when we were doing this with the old
docker build
api, but I think causes issues now withdocker buildx
.--load
tobuildx
during build so ourrun
finds the image without having to pullbuildkit
directly (which removes the need for a privileged pod), and that would only supportbuild + push
. This is actually the ideal for binderhub.Proposal
I propose we simply add 'push' and 'run' as boolean args to
build
and deprecate therun
andpush
methods. Additionally, if this feels weird, we can renamebuild
to be something else.Runtimes that don't support
run
(like buildkit) can simply error out whenrun
is True.The text was updated successfully, but these errors were encountered: