code: func (b *DockerIgnorer) Ignore(config *api.Config) error {
  	/*
  		 so, to duplicate the .dockerignore capabilities (https://docs.docker.com/reference/builder/#dockerignore-file)
  		 we have a flow that follows:
  		0) First note, .dockerignore rules are NOT recursive (unlike .gitignore) .. you have to list subdir explicitly
  		1) Read in the exclusion patterns
  		2) Skip over comments (noted by #)
  		3) note overrides (via exclamation sign i.e. !) and reinstate files (don't remove) as needed
  		4) leverage Glob matching to build list, as .dockerignore is documented as following filepath.Match / filepath.Glob
  		5) del files
  		 1 to 4 is in getListOfFilesToIgnore
  	*/
  	filesToDel, lerr := getListOfFilesToIgnore(config.WorkingSourceDir)
  	if lerr != nil {
  		return lerr
  	}
  
  	if filesToDel == nil {
  		return nil
  	}
  
  	// delete compiled list of files
  	for _, fileToDel := range filesToDel {
  		glog.V(5).Infof("attempting to remove file %s \n", fileToDel)
  		rerr := os.RemoveAll(fileToDel)
  		if rerr != nil {
  			glog.Errorf("error removing file %s because of %v \n", fileToDel, rerr)
  			return rerr
  		}
  	}
  
  	return nil
  }
docs: // Ignore removes files from the workspace based on the contents of the
  // .s2iignore file