class_docstr: Container for building and publishing ray docker images
code: def _get_image_tags(self) -> List[str]:
      # An image tag is composed by ray version tag, python version and platform.
      # See https://docs.ray.io/en/latest/ray-overview/installation.html for
      # more information on the image tags.
      versions = self._get_image_version_tags()
  
      platforms = [self.get_platform_tag()]
      if self.platform == "cpu" and self.image_type == "ray":
          # no tag is alias to cpu for ray image
          platforms.append("")
      elif self.platform == GPU_PLATFORM:
          # gpu is alias to cu118 for ray image
          platforms.append("-gpu")
          if self.image_type == "ray-ml":
              # no tag is alias to gpu for ray-ml image
              platforms.append("")
  
      py_versions = [self.get_python_version_tag()]
      if self.python_version == DEFAULT_PYTHON_VERSION:
          py_versions.append("")
  
      tags = []
      for version in versions:
          for platform in platforms:
              for py_version in py_versions:
                  if self.architecture == DEFAULT_ARCHITECTURE:
                      tag = f"{version}{py_version}{platform}"
                  else:
                      tag = f"{version}{py_version}{platform}-{self.architecture}"
                  tags.append(tag)
      return tags
  
file_path: ray/ci/ray_ci/docker_container.py
imports: import os
  from typing import List
  from ci.ray_ci.linux_container import LinuxContainer
  from ci.ray_ci.builder_container import DEFAULT_ARCHITECTURE, DEFAULT_PYTHON_VERSION
label_desc: Use image node_id 6 for calling the DockerContainer obj's underlying member method code with example usage: obj._get_image_tags() and returns: tags