Imports System.Runtime.CompilerServices ''' ''' Docker image name ''' Public Class Image Public Property Publisher As String Public Property Package As String Public Shared Function ParseEntry(text As String) As Image With text.Trim.Split("/"c) Dim user$, name$ If .Length = 1 Then user = Nothing name = .ElementAt(0) Else user = .ElementAt(0) name = .ElementAt(1) End If Return New Image With { .Package = name, .Publisher = user } End With End Function Public Overrides Function ToString() As String If Publisher.StringEmpty Then Return Package Else Return $"{Publisher}/{Package}" End If End Function Public Shared Widening Operator CType(repo As String) As Image Return ParseEntry(repo) End Operator Public Shared Narrowing Operator CType(img As Image) As String Return img.ToString End Operator End Class ''' ''' 共享文件夹 ''' Public Class Mount ''' ''' 宿主机内的本地文件夹全路径 ''' Public Property local As String ''' ''' 虚拟机内的文件路径,共享文件夹将会在虚拟机内被挂载到这个路径上面 ''' Public Property virtual As String ''' ''' ``local:virtual`` ''' ''' Public Overrides Function ToString() As String Return $"{local.GetDirectoryFullPath}:{virtual}" End Function End Class