Use same error handling while unmarshalling args for CMD and ENTRYPOINT
| ... | ... |
@@ -213,16 +213,30 @@ func (b *buildFile) CmdEnv(args string) error {
|
| 213 | 213 |
return b.commit("", b.config.Cmd, fmt.Sprintf("ENV %s", replacedVar))
|
| 214 | 214 |
} |
| 215 | 215 |
|
| 216 |
-func (b *buildFile) CmdCmd(args string) error {
|
|
| 216 |
+func (b *buildFile) buildCmdFromJson(args string) []string {
|
|
| 217 | 217 |
var cmd []string |
| 218 | 218 |
if err := json.Unmarshal([]byte(args), &cmd); err != nil {
|
| 219 |
- utils.Debugf("Error unmarshalling: %s, setting cmd to /bin/sh -c", err)
|
|
| 219 |
+ utils.Debugf("Error unmarshalling: %s, setting to /bin/sh -c", err)
|
|
| 220 | 220 |
cmd = []string{"/bin/sh", "-c", args}
|
| 221 | 221 |
} |
| 222 |
- if err := b.commit("", cmd, fmt.Sprintf("CMD %v", cmd)); err != nil {
|
|
| 222 |
+ return cmd |
|
| 223 |
+} |
|
| 224 |
+ |
|
| 225 |
+func (b *buildFile) CmdCmd(args string) error {
|
|
| 226 |
+ cmd := b.buildCmdFromJson(args) |
|
| 227 |
+ b.config.Cmd = cmd |
|
| 228 |
+ if err := b.commit("", b.config.Cmd, fmt.Sprintf("CMD %v", cmd)); err != nil {
|
|
| 229 |
+ return err |
|
| 230 |
+ } |
|
| 231 |
+ return nil |
|
| 232 |
+} |
|
| 233 |
+ |
|
| 234 |
+func (b *buildFile) CmdEntrypoint(args string) error {
|
|
| 235 |
+ entrypoint := b.buildCmdFromJson(args) |
|
| 236 |
+ b.config.Entrypoint = entrypoint |
|
| 237 |
+ if err := b.commit("", b.config.Cmd, fmt.Sprintf("ENTRYPOINT %v", entrypoint)); err != nil {
|
|
| 223 | 238 |
return err |
| 224 | 239 |
} |
| 225 |
- b.config.Cmd = cmd |
|
| 226 | 240 |
return nil |
| 227 | 241 |
} |
| 228 | 242 |
|
| ... | ... |
@@ -245,23 +259,6 @@ func (b *buildFile) CmdCopy(args string) error {
|
| 245 | 245 |
return fmt.Errorf("COPY has been deprecated. Please use ADD instead")
|
| 246 | 246 |
} |
| 247 | 247 |
|
| 248 |
-func (b *buildFile) CmdEntrypoint(args string) error {
|
|
| 249 |
- if args == "" {
|
|
| 250 |
- return fmt.Errorf("Entrypoint cannot be empty")
|
|
| 251 |
- } |
|
| 252 |
- |
|
| 253 |
- var entrypoint []string |
|
| 254 |
- if err := json.Unmarshal([]byte(args), &entrypoint); err != nil {
|
|
| 255 |
- b.config.Entrypoint = []string{"/bin/sh", "-c", args}
|
|
| 256 |
- } else {
|
|
| 257 |
- b.config.Entrypoint = entrypoint |
|
| 258 |
- } |
|
| 259 |
- if err := b.commit("", b.config.Cmd, fmt.Sprintf("ENTRYPOINT %s", args)); err != nil {
|
|
| 260 |
- return err |
|
| 261 |
- } |
|
| 262 |
- return nil |
|
| 263 |
-} |
|
| 264 |
- |
|
| 265 | 248 |
func (b *buildFile) CmdWorkdir(workdir string) error {
|
| 266 | 249 |
b.config.WorkingDir = workdir |
| 267 | 250 |
return b.commit("", b.config.Cmd, fmt.Sprintf("WORKDIR %v", workdir))
|