instruction: Create a Dockerfile with vSphere volume storage integration
output: ```dockerfile
  from or write to) that volume when the pods are
  running on the same node. For single pod access, please see ReadWriteOncePod.ReadOnlyManythe volume can be mounted as read-only by many nodes.ReadWriteManythe volume can be mounted as read-write by many nodes.ReadWriteOncePodFEATURE STATE:
  Kubernetes v1.29 [stable]the volume can be mounted as read-write by a single Pod. Use ReadWriteOncePod
  access mode if you want to ensure that only one pod across the whole cluster can
  read that PVC or write to it.Note:The ReadWriteOncePod access mode is only supported for
  CSI volumes and Kubernetes version
  1.22+. To use this feature you will need to update the following
  CSI sidecars
  to these versions or greater:csi-provisioner:v3.0.0+csi-attacher:v3.3.0+csi-resizer:v1.3.0+In the CLI, the access modes are abbreviated to:RWO - ReadWriteOnceROX - ReadOnlyManyRWX - ReadWriteManyRWOP - ReadWriteOncePodNote:Kubernetes uses volume access modes to match PersistentVolumeClaims and PersistentVolumes.
  In some cases, the volume access modes also constrain where the PersistentVolume can be mounted.
  Volume access modes do not enforce write protection once the storage has been mounted.
  Even if the access modes are specified as ReadWriteOnce, ReadOnlyMany, or ReadWriteMany,
  they don't set any constraints on the volume. For example, even if a PersistentVolume is
  created as ReadOnlyMany, it is no guarantee that it will be read-only. If the access modes
  are specified as ReadWriteOncePod, the volume is constrained and can be mounted on only a single Pod.Important! A volume can only be mounted using one access mode at a time,
  even if it supports many.Volume PluginReadWriteOnceReadOnlyManyReadWriteManyReadWriteOncePodAzureFile✓✓✓-CephFS✓✓✓-CSIdepends on the driverdepends on the driverdepends on the driverdepends on the driverFC✓✓--FlexVolume✓✓depends on the driver-HostPath✓---iSCSI✓✓--NFS✓✓✓-RBD✓✓--VsphereVolume✓-- (works when Pods are collocated)-PortworxVolume✓-✓-ClassA PV can have a class, which is specified by setting the
  storageClassName attribute to the name of a
  StorageClass.
  A PV of a particular class can only be bound to PVCs requesting
  that class. A PV with no storageClassName has no class and can only be bound
  to PVCs that request no particular class.In the past, the annotation volume.beta.kubernetes.io/storage-class was used instead
  of the storageClassName attribute. This annotation is still working; however,
  it will become fully deprecated in a future Kubernetes release.Reclaim PolicyCurrent reclaim policies are:Retain -- manual reclamationRecycle -- basic scrub (rm -rf /thevolume/*)Delete -- delete the volumeFor Kubernetes 1.32, only nfs and hostPath volume types support recycling.Mount OptionsA Kubernetes administrator can specify additional mount options for when a
  Persistent Volume is mounted on a node.Note:Not all Persistent Volume types support mount options.The following volume types support mount options:csi (including CSI migrated volume types)iscsinfsMount options are not validated. If a mount option is invalid, the mount fails.In the past, the annotation volume.beta.kubernetes.io/mount-options was used instead
  of the mountOptions attribute. This annotation is still working; however,
  it will become fully deprecated in a future Kubernetes release.Node AffinityNote:For most volume types, you do not need to set this field.
  You need to explicitly set this for local volumes.A PV can specify node affinity to define constraints that limit what nodes this
  volume can be accessed
  ```