github.com/xiaobinqt/libcompose@v1.1.0/docker/ctx/context.go (about)

     1  package ctx
     2  
     3  import (
     4  	cliconfig "github.com/docker/cli/cli/config"
     5  	"github.com/docker/cli/cli/config/configfile"
     6  	"github.com/xiaobinqt/libcompose/docker/auth"
     7  	"github.com/xiaobinqt/libcompose/docker/client"
     8  	"github.com/xiaobinqt/libcompose/project"
     9  )
    10  
    11  // Context holds context meta information about a libcompose project and docker
    12  // client information (like configuration file, builder to use, …)
    13  type Context struct {
    14  	project.Context
    15  	ClientFactory client.Factory
    16  	ConfigDir     string
    17  	ConfigFile    *configfile.ConfigFile
    18  	AuthLookup    auth.Lookup
    19  }
    20  
    21  // LookupConfig tries to load the docker configuration files, if any.
    22  func (c *Context) LookupConfig() error {
    23  	if c.ConfigFile != nil {
    24  		return nil
    25  	}
    26  
    27  	config, err := cliconfig.Load(c.ConfigDir)
    28  	if err != nil {
    29  		return err
    30  	}
    31  
    32  	c.ConfigFile = config
    33  
    34  	return nil
    35  }