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

Method ImageTag

agent/app/service/image.go:401–442  ·  view source on GitHub ↗
(req dto.ImageTag)

Source from the content-addressed store, hash-verified

399}
400
401func (u *ImageService) ImageTag(req dto.ImageTag) error {
402 client, err := docker.NewDockerClient()
403 if err != nil {
404 return err
405 }
406 defer client.Close()
407
408 imageItem, err := client.ImageInspect(context.Background(), req.SourceID)
409 if err != nil {
410 return err
411 }
412
413 for _, tag := range req.Tags {
414 isNew := true
415 for _, tagOld := range imageItem.RepoTags {
416 if tag == tagOld {
417 isNew = false
418 break
419 }
420 }
421 if isNew {
422 if err := client.ImageTag(context.TODO(), req.SourceID, tag); err != nil {
423 return err
424 }
425 }
426 }
427 for _, tagOld := range imageItem.RepoTags {
428 isDel := true
429 for _, tag := range req.Tags {
430 if tag == tagOld {
431 isDel = false
432 break
433 }
434 }
435 if isDel {
436 if _, err := client.ImageRemove(context.TODO(), tagOld, image.RemoveOptions{}); err != nil {
437 return err
438 }
439 }
440 }
441 return nil
442}
443
444func (u *ImageService) ImagePush(req dto.ImagePush) error {
445 client, err := docker.NewDockerClient()

Callers

nothing calls this directly

Calls 3

CloseMethod · 0.65
ImageTagMethod · 0.65
ImageRemoveMethod · 0.65

Tested by

no test coverage detected