code: func add(b *Builder, args []string, attributes map[string]bool, flagArgs []string, original string) error {
  	if len(args) < 2 {
  		return errAtLeastOneArgument("ADD")
  	}
  	var chown string
  	last := len(args) - 1
  	dest := makeAbsolute(args[last], b.RunConfig.WorkingDir)
  	if len(flagArgs) > 0 {
  		for _, arg := range flagArgs {
  			switch {
  			case strings.HasPrefix(arg, "--chown="):
  				chown = strings.TrimPrefix(arg, "--chown=")
  			default:
  				return fmt.Errorf("ADD only supports the --chown=<uid:gid> flag")
  			}
  		}
  	}
  	b.PendingCopies = append(b.PendingCopies, Copy{Src: args[0:last], Dest: dest, Download: true, Chown: chown})
  	return nil
  }
docs: // ADD foo /path
  //
  // Add the file 'foo' to '/path'. Tarball and Remote URL (git, http) handling
  // exist here. If you do not wish to have this automatic handling, use COPY.
  //