code: func (e *ClientExecutor) Execute(b *imagebuilder.Builder, node *parser.Node) error {
  	for i, child := range node.Children {
  		step := b.Step()
  		if err := step.Resolve(child); err != nil {
  			return err
  		}
  		glog.V(4).Infof("step: %s", step.Original)
  		if e.LogFn != nil {
  			// original may have unescaped %, so perform fmt escaping
  			e.LogFn(strings.Replace(step.Original, "%", "%%", -1))
  		}
  		noRunsRemaining := !b.RequiresStart(&parser.Node{Children: node.Children[i+1:]})
  
  		if err := b.Run(step, e, noRunsRemaining); err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // Execute performs all of the provided steps against the initialized container. May be
  // invoked multiple times for a given container.