@@ -7,14 +7,15 @@ import (
77 "encoding/json"
88 "errors"
99 "fmt"
10- "github.com/docker/docker/api/types/image"
11- "github.com/docker/docker/api/types/registry"
1210 "io"
1311 "log"
1412 "net/http"
1513 "os"
1614 "strings"
1715
16+ "github.com/docker/docker/api/types/image"
17+ "github.com/docker/docker/api/types/registry"
18+
1819 "github.com/docker/docker/api/types/filters"
1920 "github.com/docker/docker/client"
2021 docker "github.com/fsouza/go-dockerclient"
@@ -24,15 +25,17 @@ import (
2425func PullImage (imageid string ) error {
2526 ctx := context .Background ()
2627 dockerClient , err := client .NewClientWithOpts (client .FromEnv , client .WithAPIVersionNegotiation ())
27- defer func (dockerClient * client.Client ) {
28- err := dockerClient .Close ()
29- if err != nil {
30- log .Print (err )
31- }
32- }(dockerClient )
3328 if err != nil {
3429 return err
3530 }
31+ defer func (dockerClient * client.Client ) {
32+ if dockerClient != nil {
33+ err := dockerClient .Close ()
34+ if err != nil {
35+ log .Print (err )
36+ }
37+ }
38+ }(dockerClient )
3639
3740 authConfig := registry.AuthConfig {
3841 Username : os .Getenv ("DOCKER_USER" ),
@@ -64,15 +67,17 @@ func PullImage(imageid string) error {
6467func SaveImage (imageid string , folder string ) error {
6568 ctx := context .Background ()
6669 dockerClient , err := client .NewClientWithOpts (client .FromEnv , client .WithAPIVersionNegotiation ())
67- defer func (dockerClient * client.Client ) {
68- err := dockerClient .Close ()
69- if err != nil {
70- log .Print (err )
71- }
72- }(dockerClient )
7370 if err != nil {
7471 return err
7572 }
73+ defer func (dockerClient * client.Client ) {
74+ if dockerClient != nil {
75+ err := dockerClient .Close ()
76+ if err != nil {
77+ log .Print (err )
78+ }
79+ }
80+ }(dockerClient )
7681 imageFileName := strings .ReplaceAll (imageid , "/" , "_" )
7782 imageFileName = strings .Replace (imageFileName , ":" , "_" , 1 )
7883 imageFileName = RemoveDoubleDots (imageFileName )
@@ -106,15 +111,17 @@ func SaveImage(imageid string, folder string) error {
106111func ImageExists (imageid string ) (bool , error ) {
107112 ctx := context .Background ()
108113 dockerClient , err := client .NewClientWithOpts (client .FromEnv , client .WithAPIVersionNegotiation ())
109- defer func (dockerClient * client.Client ) {
110- err := dockerClient .Close ()
111- if err != nil {
112- log .Print (err )
113- }
114- }(dockerClient )
115114 if err != nil {
116115 return false , err
117116 }
117+ defer func (dockerClient * client.Client ) {
118+ if dockerClient != nil {
119+ err := dockerClient .Close ()
120+ if err != nil {
121+ log .Print (err )
122+ }
123+ }
124+ }(dockerClient )
118125 imgs , err := dockerClient .ImageList (ctx , image.ListOptions {
119126 All : false ,
120127 Filters : filters.Args {},
0 commit comments