mirror of
https://github.com/docker/compose.git
synced 2025-11-15 11:19:58 +01:00
images command should display image Created time or N/A if not available
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
2b4543935c
commit
d7e5f20eb6
@ -101,15 +101,13 @@ func runImages(ctx context.Context, dockerCli command.Cli, backendOptions *Backe
|
||||
Tag string `json:"Tag"`
|
||||
Platform string `json:"Platform"`
|
||||
Size int64 `json:"Size"`
|
||||
LastTagTime time.Time `json:"LastTagTime"`
|
||||
Created *time.Time `json:"Created,omitempty"`
|
||||
LastTagTime time.Time `json:"LastTagTime,omitzero"`
|
||||
}
|
||||
// Convert map to slice
|
||||
var imageList []img
|
||||
for ctr, i := range images {
|
||||
lastTagTime := i.LastTagTime
|
||||
if lastTagTime.IsZero() {
|
||||
lastTagTime = i.Created
|
||||
}
|
||||
imageList = append(imageList, img{
|
||||
ContainerName: ctr,
|
||||
ID: i.ID,
|
||||
@ -117,6 +115,7 @@ func runImages(ctx context.Context, dockerCli command.Cli, backendOptions *Backe
|
||||
Tag: i.Tag,
|
||||
Platform: platforms.Format(i.Platform),
|
||||
Size: i.Size,
|
||||
Created: i.Created,
|
||||
LastTagTime: lastTagTime,
|
||||
})
|
||||
}
|
||||
@ -142,7 +141,10 @@ func runImages(ctx context.Context, dockerCli command.Cli, backendOptions *Backe
|
||||
if tag == "" {
|
||||
tag = "<none>"
|
||||
}
|
||||
created := units.HumanDuration(time.Now().UTC().Sub(img.LastTagTime)) + " ago"
|
||||
created := "N/A"
|
||||
if img.Created != nil {
|
||||
created = units.HumanDuration(time.Now().UTC().Sub(*img.Created)) + " ago"
|
||||
}
|
||||
_, _ = fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n",
|
||||
container, repo, tag, platforms.Format(img.Platform), id, size, created)
|
||||
}
|
||||
|
||||
@ -603,7 +603,7 @@ type ImageSummary struct {
|
||||
Tag string
|
||||
Platform platforms.Platform
|
||||
Size int64
|
||||
Created time.Time
|
||||
Created *time.Time
|
||||
LastTagTime time.Time
|
||||
}
|
||||
|
||||
|
||||
@ -91,10 +91,14 @@ func (s *composeService) Images(ctx context.Context, projectName string, options
|
||||
}
|
||||
}
|
||||
|
||||
created, err := time.Parse(time.RFC3339Nano, image.Created)
|
||||
var created *time.Time
|
||||
if image.Created != "" {
|
||||
t, err := time.Parse(time.RFC3339Nano, image.Created)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
created = &t
|
||||
}
|
||||
|
||||
mux.Lock()
|
||||
defer mux.Unlock()
|
||||
|
||||
@ -66,21 +66,21 @@ func TestImages(t *testing.T) {
|
||||
Repository: "foo",
|
||||
Tag: "1",
|
||||
Size: 12345,
|
||||
Created: created1,
|
||||
Created: &created1,
|
||||
},
|
||||
"456": {
|
||||
ID: "image2",
|
||||
Repository: "bar",
|
||||
Tag: "2",
|
||||
Size: 67890,
|
||||
Created: created2,
|
||||
Created: &created2,
|
||||
},
|
||||
"789": {
|
||||
ID: "image1",
|
||||
Repository: "foo",
|
||||
Tag: "1",
|
||||
Size: 12345,
|
||||
Created: created1,
|
||||
Created: &created1,
|
||||
},
|
||||
}
|
||||
assert.NilError(t, err)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user