code: func containerName(image string) string {
  	//Initialize seed
  	rand.Seed(time.Now().UnixNano())
  	uid := fmt.Sprintf("%08x", rand.Uint32())
  	// Replace invalid characters for container name with underscores.
  	image = strings.Map(func(r rune) rune {
  		if ('0' <= r && r <= '9') || ('A' <= r && r <= 'Z') || ('a' <= r && r <= 'z') {
  			return r
  		}
  		return '_'
  	}, image)
  	return fmt.Sprintf("%s_%s_%s", containerNamePrefix, image, uid)
  }
docs: // containerName creates names for Docker containers launched by S2I. It is
  // meant to resemble Kubernetes' pkg/kubelet/dockertools.BuildDockerName.