diff --git a/pkg/executor/build.go b/pkg/executor/build.go index 73b2f0df2..f5ee11cfc 100644 --- a/pkg/executor/build.go +++ b/pkg/executor/build.go @@ -398,10 +398,14 @@ func (s *stageBuilder) build() error { continue } if isCacheCommand { - v := command.(commands.Cached) - layer := v.Layer() - if err := s.saveLayerToImage(layer, command.String()); err != nil { - return errors.Wrap(err, "failed to save layer") + if files != nil && len(files) == 0 { + logrus.Info("No files were changed, appending empty layer to config. No layer added to image.") + } else { + v := command.(commands.Cached) + layer := v.Layer() + if err := s.saveLayerToImage(layer, command.String()); err != nil { + return errors.Wrap(err, "failed to save layer") + } } } else { tarPath, err := s.takeSnapshot(files, command.ShouldDetectDeletedFiles())