mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-29 17:05:46 +08:00
rm: disallow removing context builders
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
4a215a943b
commit
1e71a3ffa7
@ -43,31 +43,37 @@ func runRm(dockerCli command.Cli, in rmOptions) error {
|
|||||||
return rmAllInactive(ctx, txn, dockerCli, in)
|
return rmAllInactive(ctx, txn, dockerCli, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ng *store.NodeGroup
|
||||||
if in.builder != "" {
|
if in.builder != "" {
|
||||||
ng, err := storeutil.GetNodeGroup(txn, dockerCli, in.builder)
|
ng, err = storeutil.GetNodeGroup(txn, dockerCli, in.builder)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err1 := rm(ctx, dockerCli, in, ng)
|
} else {
|
||||||
if err := txn.Remove(ng.Name); err != nil {
|
ng, err = storeutil.GetCurrentInstance(txn, dockerCli)
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return err1
|
}
|
||||||
|
if ng == nil {
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ng, err := storeutil.GetCurrentInstance(txn, dockerCli)
|
ctxbuilders, err := dockerCli.ContextStore().List()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if ng != nil {
|
for _, cb := range ctxbuilders {
|
||||||
err1 := rm(ctx, dockerCli, in, ng)
|
if ng.Driver == "docker" && len(ng.Nodes) == 1 && ng.Nodes[0].Endpoint == cb.Name {
|
||||||
if err := txn.Remove(ng.Name); err != nil {
|
return errors.Errorf("context builder cannot be removed, run `docker context rm %s` to remove this context", cb.Name)
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
return err1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
err1 := rm(ctx, dockerCli, in, ng)
|
||||||
|
if err := txn.Remove(ng.Name); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return err1
|
||||||
}
|
}
|
||||||
|
|
||||||
func rmCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
|
func rmCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user