Builder - Parser. Remove platform parser directive
@@ -7,13 +7,11 @@ import (
"fmt"
"io"
"regexp"
- "runtime"
"strconv"
"strings"
"unicode"
"github.com/docker/docker/builder/dockerfile/command"
- "github.com/docker/docker/pkg/system"
"github.com/pkg/errors"
)
@@ -84,7 +82,6 @@ var (
dispatch map[string]func(string, *Directive) (*Node, map[string]bool, error)
tokenWhitespace = regexp.MustCompile(`[\t\v\f\r ]+`)
tokenEscapeCommand = regexp.MustCompile(`^#[ \t]*escape[ \t]*=[ \t]*(?P<escapechar>.).*$`)
- tokenPlatformCommand = regexp.MustCompile(`^#[ \t]*platform[ \t]*=[ \t]*(?P<platform>.*)$`)
tokenComment = regexp.MustCompile(`^#.*$`)
)
@@ -95,11 +92,9 @@ const DefaultEscapeToken = '\\'
// parsing directives.
type Directive struct {
escapeToken rune // Current escape token
- platformToken string // Current platform token
lineContinuationRegex *regexp.Regexp // Current line continuation regex
processingComplete bool // Whether we are done looking for directives
escapeSeen bool // Whether the escape directive has been seen
- platformSeen bool // Whether the platform directive has been seen
}
// setEscapeToken sets the default token for escaping characters in a Dockerfile.
@@ -112,25 +107,9 @@ func (d *Directive) setEscapeToken(s string) error {
return nil
}
-// setPlatformToken sets the default platform for pulling images in a Dockerfile.
-func (d *Directive) setPlatformToken(s string) error {
- s = strings.ToLower(s)
- valid := []string{runtime.GOOS}
- if system.LCOWSupported() {
- valid = append(valid, "linux")
- }
- for _, item := range valid {
- if s == item {
- d.platformToken = s
- return nil
- }
- }
- return fmt.Errorf("invalid PLATFORM '%s'. Must be one of %v", s, valid)
-}
-
-// possibleParserDirective looks for one or more parser directives '# escapeToken=<char>' and
-// '# platform=<string>'. Parser directives must precede any builder instruction
-// or other comments, and cannot be repeated.
+// possibleParserDirective looks for parser directives, eg '# escapeToken=<char>'.
+// Parser directives must precede any builder instruction or other comments,
+// and cannot be repeated.
func (d *Directive) possibleParserDirective(line string) error {
if d.processingComplete {
return nil
@@ -149,22 +128,6 @@ func (d *Directive) possibleParserDirective(line string) error {
}
}
- // Only recognise a platform token if LCOW is supported
- if system.LCOWSupported() {
- tpcMatch := tokenPlatformCommand.FindStringSubmatch(strings.ToLower(line))
- if len(tpcMatch) != 0 {
- for i, n := range tokenPlatformCommand.SubexpNames() {
- if n == "platform" {
- if d.platformSeen {
- return errors.New("only one platform parser directive can be used")
- }
- d.platformSeen = true
- return d.setPlatformToken(tpcMatch[i])
- }
- }
- }
- }
-
d.processingComplete = true
return nil
}
