|
@@ -213,16 +213,30 @@ func (b *buildFile) CmdEnv(args string) error {
|
|
return b.commit("", b.config.Cmd, fmt.Sprintf("ENV %s", replacedVar))
|
|
return b.commit("", b.config.Cmd, fmt.Sprintf("ENV %s", replacedVar))
|
|
}
|
|
}
|
|
|
|
|
|
-func (b *buildFile) CmdCmd(args string) error {
|
|
|
|
|
|
+func (b *buildFile) buildCmdFromJson(args string) []string {
|
|
var cmd []string
|
|
var cmd []string
|
|
if err := json.Unmarshal([]byte(args), &cmd); err != nil {
|
|
if err := json.Unmarshal([]byte(args), &cmd); err != nil {
|
|
- utils.Debugf("Error unmarshalling: %s, setting cmd to /bin/sh -c", err)
|
|
|
|
|
|
+ utils.Debugf("Error unmarshalling: %s, setting to /bin/sh -c", err)
|
|
cmd = []string{"/bin/sh", "-c", args}
|
|
cmd = []string{"/bin/sh", "-c", args}
|
|
}
|
|
}
|
|
- if err := b.commit("", cmd, fmt.Sprintf("CMD %v", cmd)); err != nil {
|
|
|
|
|
|
+ return cmd
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (b *buildFile) CmdCmd(args string) error {
|
|
|
|
+ cmd := b.buildCmdFromJson(args)
|
|
|
|
+ b.config.Cmd = cmd
|
|
|
|
+ if err := b.commit("", b.config.Cmd, fmt.Sprintf("CMD %v", cmd)); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (b *buildFile) CmdEntrypoint(args string) error {
|
|
|
|
+ entrypoint := b.buildCmdFromJson(args)
|
|
|
|
+ b.config.Entrypoint = entrypoint
|
|
|
|
+ if err := b.commit("", b.config.Cmd, fmt.Sprintf("ENTRYPOINT %v", entrypoint)); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- b.config.Cmd = cmd
|
|
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -245,23 +259,6 @@ func (b *buildFile) CmdCopy(args string) error {
|
|
return fmt.Errorf("COPY has been deprecated. Please use ADD instead")
|
|
return fmt.Errorf("COPY has been deprecated. Please use ADD instead")
|
|
}
|
|
}
|
|
|
|
|
|
-func (b *buildFile) CmdEntrypoint(args string) error {
|
|
|
|
- if args == "" {
|
|
|
|
- return fmt.Errorf("Entrypoint cannot be empty")
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var entrypoint []string
|
|
|
|
- if err := json.Unmarshal([]byte(args), &entrypoint); err != nil {
|
|
|
|
- b.config.Entrypoint = []string{"/bin/sh", "-c", args}
|
|
|
|
- } else {
|
|
|
|
- b.config.Entrypoint = entrypoint
|
|
|
|
- }
|
|
|
|
- if err := b.commit("", b.config.Cmd, fmt.Sprintf("ENTRYPOINT %s", args)); err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
func (b *buildFile) CmdWorkdir(workdir string) error {
|
|
func (b *buildFile) CmdWorkdir(workdir string) error {
|
|
b.config.WorkingDir = workdir
|
|
b.config.WorkingDir = workdir
|
|
return b.commit("", b.config.Cmd, fmt.Sprintf("WORKDIR %v", workdir))
|
|
return b.commit("", b.config.Cmd, fmt.Sprintf("WORKDIR %v", workdir))
|