check if a missing image won't be build via a service declared in depends_on section

Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
This commit is contained in:
Guillaume Lours 2022-11-09 19:51:11 +01:00
parent 32f29b833f
commit a9e070206e
1 changed files with 14 additions and 1 deletions

View File

@ -271,7 +271,7 @@ func (s *composeService) pullRequiredImages(ctx context.Context, project *types.
eg.Go(func() error {
id, err := s.pullServiceImage(ctx, service, info, s.configFile(), w, quietPull)
pulledImages[i] = id
if err != nil && service.Build != nil {
if err != nil && isServiceImageToBuild(service, project.Services) {
// image can be built, so we can ignore pull failure
return nil
}
@ -291,6 +291,19 @@ func (s *composeService) pullRequiredImages(ctx context.Context, project *types.
})
}
func isServiceImageToBuild(service types.ServiceConfig, services []types.ServiceConfig) bool {
if service.Build != nil {
return true
}
for _, depService := range services {
if depService.Image == service.Image && depService.Build != nil {
return true
}
}
return false
}
func toPullProgressEvent(parent string, jm jsonmessage.JSONMessage, w progress.Writer) {
if jm.ID == "" || jm.Progress == nil {
return