Skip to content

Commit a16c3a4

Browse files
committed
cli/command/image: use lazyregexp to compile regexes on first use
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent d760572 commit a16c3a4

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

cli/command/image/build.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"io"
1111
"os"
1212
"path/filepath"
13-
"regexp"
1413
"runtime"
1514
"strings"
1615

@@ -23,6 +22,7 @@ import (
2322
"github.com/docker/cli/cli/internal/jsonstream"
2423
"github.com/docker/cli/cli/streams"
2524
"github.com/docker/cli/cli/trust"
25+
"github.com/docker/cli/internal/lazyregexp"
2626
"github.com/docker/cli/opts"
2727
"github.com/docker/docker/api"
2828
"github.com/docker/docker/api/types"
@@ -432,7 +432,7 @@ func validateTag(rawRepo string) (string, error) {
432432
return rawRepo, nil
433433
}
434434

435-
var dockerfileFromLinePattern = regexp.MustCompile(`(?i)^[\s]*FROM[ \f\r\t\v]+(?P<image>[^ \f\r\t\v\n#]+)`)
435+
var dockerfileFromLinePattern = lazyregexp.New(`(?i)^[\s]*FROM[ \f\r\t\v]+(?P<image>[^ \f\r\t\v\n#]+)`)
436436

437437
// resolvedTag records the repository, tag, and resolved digest reference
438438
// from a Dockerfile rewrite.

internal/lazyregexp/lazyregexp.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ func (r *Regexp) ReplaceAllStringFunc(src string, repl func(string) string) stri
7171
return r.re().ReplaceAllStringFunc(src, repl)
7272
}
7373

74+
func (r *Regexp) ReplaceAllLiteralString(src, repl string) string {
75+
return r.re().ReplaceAllLiteralString(src, repl)
76+
}
77+
7478
func (r *Regexp) SubexpNames() []string {
7579
return r.re().SubexpNames()
7680
}

0 commit comments

Comments
 (0)