mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	dockerutil: cache feature collection
Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
		| @@ -13,6 +13,9 @@ import ( | ||||
| // Client represents an active docker object. | ||||
| type Client struct { | ||||
| 	cli command.Cli | ||||
|  | ||||
| 	featuresOnce  sync.Once | ||||
| 	featuresCache map[Feature]bool | ||||
| } | ||||
|  | ||||
| // NewClient initializes a new docker client. | ||||
| @@ -64,6 +67,13 @@ func (c *Client) LoadImage(ctx context.Context, name string, status progress.Wri | ||||
| } | ||||
|  | ||||
| func (c *Client) Features(ctx context.Context, name string) map[Feature]bool { | ||||
| 	c.featuresOnce.Do(func() { | ||||
| 		c.featuresCache = c.features(ctx, name) | ||||
| 	}) | ||||
| 	return c.featuresCache | ||||
| } | ||||
|  | ||||
| func (c *Client) features(ctx context.Context, name string) map[Feature]bool { | ||||
| 	features := make(map[Feature]bool) | ||||
| 	if dapi, err := c.API(name); err == nil { | ||||
| 		if info, err := dapi.Info(ctx); err == nil { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Justin Chadwell
					Justin Chadwell