@@ -3,6 +3,7 @@ package containers
33import (
44 "context"
55 "fmt"
6+ "log"
67 "os"
78 "strings"
89
@@ -15,23 +16,26 @@ import (
1516)
1617
1718// DownloadImage download docker images from src and create docker-archive
18- func DownloadImage (imgList []string , dest string ) {
19+ func DownloadImage (imgList []string , dest string ) error {
1920
2021 // Contexts
2122 defaultPolicy , err := signature .NewPolicyFromFile ("policy.json" )
2223 if err != nil {
23- fmt .Printf ("default policy err: %s\n " , err )
24+ log .Printf ("Default policy err.\n " )
25+ return err
2426 }
2527 policyContext , err := signature .NewPolicyContext (defaultPolicy )
2628 if err != nil {
27- fmt .Printf ("Policy context err: %s\n " , err )
29+ log .Printf ("Policy context err.\n " )
30+ return err
2831 }
2932 defer policyContext .Destroy ()
3033
3134 // Create new dest archive
3235 aw , err := archive .NewWriter (nil , dest )
3336 if err != nil {
34- fmt .Printf ("%s\n " , err )
37+ log .Printf ("Error when initializing destination archive.\n " )
38+ return err
3539 }
3640 defer aw .Close ()
3741
@@ -41,24 +45,26 @@ func DownloadImage(imgList []string, dest string) {
4145 imgRef := fmt .Sprintf ("%s%s" , "docker://" , img )
4246 srcRef , err := alltransports .ParseImageName (imgRef )
4347 if err != nil {
44- fmt .Printf ("%s\n " , err )
48+ log .Printf ("Error when parsing image name for %s" , img )
49+ return err
4550 }
4651
4752 ////////// Dest
4853 imgNamed , err := reference .ParseDockerRef (img )
4954 if err != nil {
50- fmt .Printf ("%s\n " , err )
55+ log .Printf ("Error when parsing image reference for %s" , img )
56+ return err
5157 }
52-
5358 imgNameTagged , err := reference .WithTag (imgNamed , getImgTag (img ))
5459 if err != nil {
55- fmt .Printf ("%s\n " , err )
60+ log .Printf ("Error when parsing image reference and tag for %s" , img )
61+ return err
5662 }
57-
5863 // Create dest ref
5964 destRef , err := aw .NewReference (imgNameTagged )
6065 if err != nil {
61- fmt .Printf ("%s\n " , err )
66+ log .Printf ("Error when creating new image reference for %s" , img )
67+ return err
6268 }
6369 //////////
6470
@@ -69,15 +75,17 @@ func DownloadImage(imgList []string, dest string) {
6975 }
7076
7177 // Download and create tar
72- fmt .Printf ("Copy %s to %s\n " , imgRef , dest )
78+ fmt .Printf ("Copy %s to %s\n " , img , dest )
7379 _ , err = copy .Image (context .Background (), policyContext , destRef , srcRef , & copy.Options {
7480 ReportWriter : os .Stdout ,
7581 SourceCtx : sysCtx ,
7682 })
7783 if err != nil {
78- fmt .Printf ("%s\n " , err )
84+ log .Printf ("Error when downloading image %s" , img )
85+ return err
7986 }
8087 }
88+ return nil
8189}
8290
8391func getImgTag (imgStr string ) string {
0 commit comments