github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/driver/docker/version.go (about) 1 package docker 2 3 import ( 4 "github.com/Masterminds/semver/v3" 5 ) 6 7 type mobyBuildkitVersion struct { 8 MobyVersionConstraint string 9 BuildkitVersion string 10 } 11 12 // https://gist.github.com/crazy-max/780cb6878c37cb79ec3f7699706cf83f 13 // constraint syntax: https://github.com/Masterminds/semver#checking-version-constraints 14 var mobyBuildkitVersions = []mobyBuildkitVersion{ 15 { 16 MobyVersionConstraint: ">= 18.06.0-0, < 18.06.1-0", 17 BuildkitVersion: "v0.0.0+9acf51e", 18 }, 19 { 20 MobyVersionConstraint: ">= 18.06.1-0, < 18.09.0-0", 21 BuildkitVersion: "v0.0.0+98f1604", 22 }, 23 { 24 MobyVersionConstraint: ">= 18.09.0-0, < 18.09.1-0", 25 BuildkitVersion: "v0.0.0+c7bb575", 26 }, 27 { 28 MobyVersionConstraint: "~18.09.1-0", 29 BuildkitVersion: "v0.3.3", 30 }, 31 { 32 MobyVersionConstraint: "> 18.09.1-0, < 18.09.6-0", 33 BuildkitVersion: "v0.3.3+d9f7592", 34 }, 35 { 36 MobyVersionConstraint: ">= 18.09.6-0, < 18.09.7-0", 37 BuildkitVersion: "v0.4.0+ed4da8b", 38 }, 39 { 40 MobyVersionConstraint: ">= 18.09.7-0, < 19.03.0-0", 41 BuildkitVersion: "v0.4.0+05766c5", 42 }, 43 { 44 MobyVersionConstraint: "<= 19.03.0-beta2", 45 BuildkitVersion: "v0.4.0+b302896", 46 }, 47 { 48 MobyVersionConstraint: "<= 19.03.0-beta3", 49 BuildkitVersion: "v0.4.0+8818c67", 50 }, 51 { 52 MobyVersionConstraint: "<= 19.03.0-beta5", 53 BuildkitVersion: "v0.5.1+f238f1e", 54 }, 55 { 56 MobyVersionConstraint: "< 19.03.2-0", 57 BuildkitVersion: "v0.5.1+1f89ec1", 58 }, 59 { 60 MobyVersionConstraint: "<= 19.03.2-beta1", 61 BuildkitVersion: "v0.6.1", 62 }, 63 { 64 MobyVersionConstraint: ">= 19.03.2-0, < 19.03.3-0", 65 BuildkitVersion: "v0.6.1+588c73e", 66 }, 67 { 68 MobyVersionConstraint: ">= 19.03.3-0, < 19.03.5-beta2", 69 BuildkitVersion: "v0.6.2", 70 }, 71 { 72 MobyVersionConstraint: "<= 19.03.5-rc1", 73 BuildkitVersion: "v0.6.2+ff93519", 74 }, 75 { 76 MobyVersionConstraint: "<= 19.03.5", 77 BuildkitVersion: "v0.6.3+928f3b4", 78 }, 79 { 80 MobyVersionConstraint: "<= 19.03.6-rc1", 81 BuildkitVersion: "v0.6.3+926935b", 82 }, 83 { 84 MobyVersionConstraint: ">= 19.03.6-rc2, < 19.03.7-0", 85 BuildkitVersion: "v0.6.3+57e8ad5", 86 }, 87 { 88 MobyVersionConstraint: ">= 19.03.7-0, < 19.03.9-0", 89 BuildkitVersion: "v0.6.4", 90 }, 91 { 92 MobyVersionConstraint: ">= 19.03.9-0, < 19.03.13-0", 93 BuildkitVersion: "v0.6.4+a7d7b7f", 94 }, 95 { 96 MobyVersionConstraint: "<= 19.03.13-beta2", 97 BuildkitVersion: "v0.6.4+da1f4bf", 98 }, 99 { 100 MobyVersionConstraint: "<= 19.03.14", 101 BuildkitVersion: "v0.6.4+df89d4d", 102 }, 103 { 104 MobyVersionConstraint: "< 20.10.0", 105 BuildkitVersion: "v0.6.4+396bfe2", 106 }, 107 { 108 MobyVersionConstraint: "20.10.0-0 - 20.10.2-0", 109 BuildkitVersion: "v0.8.1", 110 }, 111 { 112 MobyVersionConstraint: ">= 20.10.3-0, < 20.10.4-0", 113 BuildkitVersion: "v0.8.1+68bb095", 114 }, 115 { 116 MobyVersionConstraint: "20.10.4-0 - 20.10.6", 117 BuildkitVersion: "v0.8.2", 118 }, 119 { 120 MobyVersionConstraint: "20.10.7-0 - 20.10.10-0", 121 BuildkitVersion: "v0.8.2+244e8cde", 122 }, 123 { 124 MobyVersionConstraint: "20.10.11-0 - 20.10.18-0", 125 BuildkitVersion: "v0.8.2+bc07b2b8", 126 }, 127 { 128 MobyVersionConstraint: ">= 20.10.19-0, < 20.10.20-0", 129 BuildkitVersion: "v0.8.2+3a1eeca5", 130 }, 131 { 132 MobyVersionConstraint: ">= 20.10.20-0, < 20.10.21-0", 133 BuildkitVersion: "v0.8.2+c0149372", 134 }, 135 { 136 MobyVersionConstraint: ">= 20.10.21-0, <= 20.10.23", 137 BuildkitVersion: "v0.8.2+eeb7b65", 138 }, 139 { 140 MobyVersionConstraint: "~20.10-0", 141 BuildkitVersion: "v0.8+unknown", 142 }, 143 { 144 MobyVersionConstraint: "~22.06-0", 145 BuildkitVersion: "v0.10.3", 146 }, 147 { 148 MobyVersionConstraint: ">= 23.0.0-0, < 23.0.1-0", 149 BuildkitVersion: "v0.10.6", 150 }, 151 { 152 MobyVersionConstraint: "23.0.1", 153 BuildkitVersion: "v0.10.6+4f0ee09", 154 }, 155 { 156 MobyVersionConstraint: ">= 23.0.2-0, < 23.0.4-0", 157 BuildkitVersion: "v0.10.6+70f2ad5", 158 }, 159 { 160 MobyVersionConstraint: ">= 23.0.4-0, < 23.0.7-0", 161 BuildkitVersion: "v0.10.6+d52b2d5", 162 }, 163 { 164 MobyVersionConstraint: "~23-0", 165 BuildkitVersion: "v0.10+unknown", 166 }, 167 } 168 169 func resolveBuildKitVersion(ver string) (string, error) { 170 mobyVersion, err := semver.NewVersion(ver) 171 if err != nil { 172 return "", err 173 } 174 for _, m := range mobyBuildkitVersions { 175 c, err := semver.NewConstraint(m.MobyVersionConstraint) 176 if err != nil { 177 return "", err 178 } 179 //if _, errs := c.Validate(mobyVersion); len(errs) > 0 { 180 // for _, err := range errs { 181 // fmt.Printf("%s: %v\n", m.MobyVersionConstraint, err) 182 // } 183 //} 184 if !c.Check(mobyVersion) { 185 continue 186 } 187 return m.BuildkitVersion, nil 188 } 189 return "", nil 190 }