gets the image creation time for a service
(ctx context.Context, project *types.Project, serviceName string)
| 842 | |
| 843 | // gets the image creation time for a service |
| 844 | func (s *composeService) imageCreatedTime(ctx context.Context, project *types.Project, serviceName string) (time.Time, error) { |
| 845 | res, err := s.apiClient().ContainerList(ctx, client.ContainerListOptions{ |
| 846 | All: true, |
| 847 | Filters: projectFilter(project.Name).Add("label", serviceFilter(serviceName)), |
| 848 | }) |
| 849 | if err != nil { |
| 850 | return time.Now(), err |
| 851 | } |
| 852 | if len(res.Items) == 0 { |
| 853 | return time.Now(), fmt.Errorf("could not get created time for service's image") |
| 854 | } |
| 855 | |
| 856 | img, err := s.apiClient().ImageInspect(ctx, res.Items[0].ImageID) |
| 857 | if err != nil { |
| 858 | return time.Now(), err |
| 859 | } |
| 860 | // Need to get the oldest one? |
| 861 | timeCreated, err := time.Parse(time.RFC3339Nano, img.Created) |
| 862 | if err != nil { |
| 863 | return time.Now(), err |
| 864 | } |
| 865 | return timeCreated, nil |
| 866 | } |
no test coverage detected