|
@@ -47,6 +47,10 @@ func env(b *Builder, args []string, attributes map[string]bool, original string)
|
|
return fmt.Errorf("Bad input to ENV, too many args")
|
|
return fmt.Errorf("Bad input to ENV, too many args")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
// TODO/FIXME/NOT USED
|
|
// TODO/FIXME/NOT USED
|
|
// Just here to show how to use the builder flags stuff within the
|
|
// Just here to show how to use the builder flags stuff within the
|
|
// context of a builder command. Will remove once we actually add
|
|
// context of a builder command. Will remove once we actually add
|
|
@@ -97,6 +101,10 @@ func maintainer(b *Builder, args []string, attributes map[string]bool, original
|
|
return fmt.Errorf("MAINTAINER requires exactly one argument")
|
|
return fmt.Errorf("MAINTAINER requires exactly one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
b.maintainer = args[0]
|
|
b.maintainer = args[0]
|
|
return b.commit("", b.Config.Cmd, fmt.Sprintf("MAINTAINER %s", b.maintainer))
|
|
return b.commit("", b.Config.Cmd, fmt.Sprintf("MAINTAINER %s", b.maintainer))
|
|
}
|
|
}
|
|
@@ -114,6 +122,10 @@ func label(b *Builder, args []string, attributes map[string]bool, original strin
|
|
return fmt.Errorf("Bad input to LABEL, too many args")
|
|
return fmt.Errorf("Bad input to LABEL, too many args")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
commitStr := "LABEL"
|
|
commitStr := "LABEL"
|
|
|
|
|
|
if b.Config.Labels == nil {
|
|
if b.Config.Labels == nil {
|
|
@@ -142,6 +154,10 @@ func add(b *Builder, args []string, attributes map[string]bool, original string)
|
|
return fmt.Errorf("ADD requires at least two arguments")
|
|
return fmt.Errorf("ADD requires at least two arguments")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
return b.runContextCommand(args, true, true, "ADD")
|
|
return b.runContextCommand(args, true, true, "ADD")
|
|
}
|
|
}
|
|
|
|
|
|
@@ -154,6 +170,10 @@ func dispatchCopy(b *Builder, args []string, attributes map[string]bool, origina
|
|
return fmt.Errorf("COPY requires at least two arguments")
|
|
return fmt.Errorf("COPY requires at least two arguments")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
return b.runContextCommand(args, false, false, "COPY")
|
|
return b.runContextCommand(args, false, false, "COPY")
|
|
}
|
|
}
|
|
|
|
|
|
@@ -166,6 +186,10 @@ func from(b *Builder, args []string, attributes map[string]bool, original string
|
|
return fmt.Errorf("FROM requires one argument")
|
|
return fmt.Errorf("FROM requires one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
name := args[0]
|
|
name := args[0]
|
|
|
|
|
|
if name == NoBaseImageSpecifier {
|
|
if name == NoBaseImageSpecifier {
|
|
@@ -210,6 +234,10 @@ func onbuild(b *Builder, args []string, attributes map[string]bool, original str
|
|
return fmt.Errorf("ONBUILD requires at least one argument")
|
|
return fmt.Errorf("ONBUILD requires at least one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
triggerInstruction := strings.ToUpper(strings.TrimSpace(args[0]))
|
|
triggerInstruction := strings.ToUpper(strings.TrimSpace(args[0]))
|
|
switch triggerInstruction {
|
|
switch triggerInstruction {
|
|
case "ONBUILD":
|
|
case "ONBUILD":
|
|
@@ -233,6 +261,10 @@ func workdir(b *Builder, args []string, attributes map[string]bool, original str
|
|
return fmt.Errorf("WORKDIR requires exactly one argument")
|
|
return fmt.Errorf("WORKDIR requires exactly one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
workdir := args[0]
|
|
workdir := args[0]
|
|
|
|
|
|
if !filepath.IsAbs(workdir) {
|
|
if !filepath.IsAbs(workdir) {
|
|
@@ -258,6 +290,10 @@ func run(b *Builder, args []string, attributes map[string]bool, original string)
|
|
return fmt.Errorf("Please provide a source image with `from` prior to run")
|
|
return fmt.Errorf("Please provide a source image with `from` prior to run")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
args = handleJsonArgs(args, attributes)
|
|
args = handleJsonArgs(args, attributes)
|
|
|
|
|
|
if !attributes["json"] {
|
|
if !attributes["json"] {
|
|
@@ -317,6 +353,10 @@ func run(b *Builder, args []string, attributes map[string]bool, original string)
|
|
// Argument handling is the same as RUN.
|
|
// Argument handling is the same as RUN.
|
|
//
|
|
//
|
|
func cmd(b *Builder, args []string, attributes map[string]bool, original string) error {
|
|
func cmd(b *Builder, args []string, attributes map[string]bool, original string) error {
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
cmdSlice := handleJsonArgs(args, attributes)
|
|
cmdSlice := handleJsonArgs(args, attributes)
|
|
|
|
|
|
if !attributes["json"] {
|
|
if !attributes["json"] {
|
|
@@ -345,6 +385,10 @@ func cmd(b *Builder, args []string, attributes map[string]bool, original string)
|
|
// is initialized at NewBuilder time instead of through argument parsing.
|
|
// is initialized at NewBuilder time instead of through argument parsing.
|
|
//
|
|
//
|
|
func entrypoint(b *Builder, args []string, attributes map[string]bool, original string) error {
|
|
func entrypoint(b *Builder, args []string, attributes map[string]bool, original string) error {
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
parsed := handleJsonArgs(args, attributes)
|
|
parsed := handleJsonArgs(args, attributes)
|
|
|
|
|
|
switch {
|
|
switch {
|
|
@@ -384,6 +428,10 @@ func expose(b *Builder, args []string, attributes map[string]bool, original stri
|
|
return fmt.Errorf("EXPOSE requires at least one argument")
|
|
return fmt.Errorf("EXPOSE requires at least one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
if b.Config.ExposedPorts == nil {
|
|
if b.Config.ExposedPorts == nil {
|
|
b.Config.ExposedPorts = make(nat.PortSet)
|
|
b.Config.ExposedPorts = make(nat.PortSet)
|
|
}
|
|
}
|
|
@@ -428,6 +476,10 @@ func user(b *Builder, args []string, attributes map[string]bool, original string
|
|
return fmt.Errorf("USER requires exactly one argument")
|
|
return fmt.Errorf("USER requires exactly one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
b.Config.User = args[0]
|
|
b.Config.User = args[0]
|
|
return b.commit("", b.Config.Cmd, fmt.Sprintf("USER %v", args))
|
|
return b.commit("", b.Config.Cmd, fmt.Sprintf("USER %v", args))
|
|
}
|
|
}
|
|
@@ -441,6 +493,10 @@ func volume(b *Builder, args []string, attributes map[string]bool, original stri
|
|
return fmt.Errorf("VOLUME requires at least one argument")
|
|
return fmt.Errorf("VOLUME requires at least one argument")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err := b.BuilderFlags.Parse(); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
if b.Config.Volumes == nil {
|
|
if b.Config.Volumes == nil {
|
|
b.Config.Volumes = map[string]struct{}{}
|
|
b.Config.Volumes = map[string]struct{}{}
|
|
}
|
|
}
|