Browse Source

Merge pull request #37178 from tonistiigi/layer-leak

builder: fix layer leak on multi-stage wildcard copy
Vincent Demeester 7 years ago
parent
commit
3e494c4b93
1 changed files with 3 additions and 1 deletions
  1. 3 1
      builder/dockerfile/copy.go

+ 3 - 1
builder/dockerfile/copy.go

@@ -172,7 +172,9 @@ func (o *copier) calcCopyInfo(origPath string, allowWildcards bool) ([]copyInfo,
 	// TODO: do this when creating copier. Requires validateCopySourcePath
 	// (and other below) to be aware of the difference sources. Why is it only
 	// done on image Source?
-	if imageSource != nil {
+	if imageSource != nil && o.activeLayer == nil {
+		// this needs to be protected against repeated calls as wildcard copy
+		// will call it multiple times for a single COPY
 		var err error
 		rwLayer, err := imageSource.NewRWLayer()
 		if err != nil {