MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / loadAuthInfo

Function loadAuthInfo

agent/app/service/image.go:551–588  ·  view source on GitHub ↗
(image string)

Source from the content-addressed store, hash-verified

549}
550
551func loadAuthInfo(image string) (bool, string) {
552 if !strings.Contains(image, "/") {
553 return false, ""
554 }
555 homeDir := homedir.Get()
556 confPath := path.Join(homeDir, ".docker/config.json")
557 configFileBytes, err := os.ReadFile(confPath)
558 if err != nil {
559 return false, ""
560 }
561 var config dockerConfig
562 if err = json.Unmarshal(configFileBytes, &config); err != nil {
563 return false, ""
564 }
565 var (
566 user string
567 passwd string
568 )
569 imagePrefix := strings.Split(image, "/")[0]
570 if val, ok := config.Auths[imagePrefix]; ok {
571 itemByte, _ := base64.StdEncoding.DecodeString(val.Auth)
572 itemStr := string(itemByte)
573 if strings.Contains(itemStr, ":") {
574 user = strings.Split(itemStr, ":")[0]
575 passwd = strings.Split(itemStr, ":")[1]
576 }
577 }
578 authConfig := registry.AuthConfig{
579 Username: user,
580 Password: passwd,
581 }
582 encodedJSON, err := json.Marshal(authConfig)
583 if err != nil {
584 return false, ""
585 }
586 authStr := base64.URLEncoding.EncodeToString(encodedJSON)
587 return true, authStr
588}
589
590type dockerConfig struct {
591 Auths map[string]authConfig `json:"auths"`

Callers 2

ImagePullMethod · 0.85
pullImagesFunction · 0.85

Calls 1

GetMethod · 0.65

Tested by

no test coverage detected