new Dockerfile keyword: cmd to set a default runtime command
diff --git a/contrib/docker-build/docker-build b/contrib/docker-build/docker-build
index d342afd..18d3153 100755
--- a/contrib/docker-build/docker-build
+++ b/contrib/docker-build/docker-build
@@ -50,7 +50,7 @@
 	return docker(["inspect", img]).read().strip() != ""
 
 def image_config(img):
-	return json.loads(docker(["inspect", img]).read()).get("Config", {})
+	return json.loads(docker(["inspect", img]).read()).get("config", {})
 
 def run_and_commit(img_in, cmd, stdin=None, author=None, run=None):
 	run_id = docker(["run"] + (["-i", "-a", "stdin"] if stdin else ["-d"]) + [img_in, "/bin/sh", "-c", cmd], stdin=stdin).read().rstrip()
@@ -111,12 +111,22 @@
 				print "===> " + base
 			elif op == "expose":
 				config = image_config(base)
+				if config.get("PortSpecs") is None:
+					config["PortSpecs"] = []
 				portspec = param.strip()
-				config.setdefault("PortSpecs", []).append(portspec)
+				config["PortSpecs"].append(portspec)
 				result = run_and_commit(base, "# (nop) expose port {}".format(portspec), author=maintainer, run=config)
 				steps.append(result)
 				base=result
 				print "===> " + base
+			elif op == "cmd":
+				config  = image_config(base)
+				cmd = list(json.loads(param))
+				config["Cmd"] = cmd
+				result = run_and_commit(base, "# (nop) set default command to '{}'".format(" ".join(cmd)), author=maintainer, run=config)
+				steps.append(result)
+				base=result
+				print "===> " + base
 			else:
 				print "Skipping uknown op " + op
 	except: