|
22 | 22 |
|
23 | 23 | source "../scripts/target-platform"
|
24 | 24 |
|
| 25 | +if [ -z "$CONTAINERD_VERSION" ]; then |
| 26 | + # Select the default version of containerd based on the docker engine source, |
| 27 | + # which is needed for naming the produced .tgz file. We normalize the value to |
| 28 | + # always have a "v" prefix. |
| 29 | + # TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging |
| 30 | + CONTAINERD_VERSION="$(awk -F'=' '$1 == "ARG CONTAINERD_VERSION" {{sub("v","")}; print "v" $2 }' "${ENGINE_DIR}/Dockerfile.windows")" |
| 31 | + export CONTAINERD_VERSION |
| 32 | +fi |
| 33 | + |
25 | 34 | build_cli() {
|
26 | 35 | [ -d "${CLI_DIR:?}/build" ] && rm -r "${CLI_DIR:?}/build"
|
27 | 36 | (
|
@@ -130,6 +139,7 @@ echo "UNAME=$(uname -m)"
|
130 | 139 | echo "TARGETPLATFORM=${TARGETPLATFORM}"
|
131 | 140 | echo "CURPLATFORM=${CURPLATFORM}"
|
132 | 141 | echo "CROSS=${CROSS}"
|
| 142 | +echo "CONTAINERD_VERSION=${CONTAINERD_VERSION}" |
133 | 143 |
|
134 | 144 | cgo_enabled=""
|
135 | 145 | if [ "$TARGETARCH" = "arm" ] && [ -n "$TARGETVARIANT" ]; then
|
|
143 | 153 |
|
144 | 154 | buildDir="${CURDIR}/build/${TARGETPLATFORM}"
|
145 | 155 |
|
146 |
| -dockerBuildDir="${buildDir}/docker" |
| 156 | +dockerCLIBuildDir="${buildDir}/docker-cli" |
| 157 | +dockerBuildDir="${buildDir}/docker-engine" |
| 158 | +containerdBuildDir="${buildDir}/containerd" |
147 | 159 | rootlessExtrasBuildDir="${buildDir}/docker-rootless-extras"
|
148 | 160 | buildxBuildDir="${buildDir}/docker-buildx"
|
149 | 161 | composeBuildDir="${buildDir}/docker-compose"
|
@@ -188,42 +200,75 @@ esac
|
188 | 200 | # cleanup
|
189 | 201 | [ -d "${buildDir}" ] && rm -r "${buildDir}"
|
190 | 202 |
|
191 |
| -# docker |
192 |
| -mkdir -p "${dockerBuildDir}" |
| 203 | +# docker CLI |
| 204 | +mkdir -p "${dockerCLIBuildDir}" |
| 205 | +case ${TARGETOS} in |
| 206 | + linux | darwin) |
| 207 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerCLIBuildDir}/docker" |
| 208 | + ;; |
| 209 | + windows) |
| 210 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerCLIBuildDir}/docker.exe" |
| 211 | + ;; |
| 212 | +esac |
| 213 | +# package docker CLI |
193 | 214 | case ${TARGETOS} in
|
194 | 215 | linux | darwin)
|
195 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerBuildDir}/docker" |
| 216 | + ( |
| 217 | + set -x |
| 218 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-cli-${STATIC_VERSION}.tgz" docker-cli |
| 219 | + ) |
196 | 220 | ;;
|
197 | 221 | windows)
|
198 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerBuildDir}/docker.exe" |
| 222 | + ( |
| 223 | + cd "${buildDir}" |
| 224 | + set -x |
| 225 | + zip -r "docker-cli-${STATIC_VERSION}.zip" docker-cli |
| 226 | + ) |
199 | 227 | ;;
|
200 | 228 | esac
|
| 229 | + |
| 230 | +# docker, containerd, and runc |
| 231 | +mkdir -p "${dockerBuildDir}" |
201 | 232 | case ${TARGETOS} in
|
202 | 233 | linux)
|
203 |
| - for f in dockerd containerd ctr containerd-shim containerd-shim-runc-v2 docker-init docker-proxy runc; do |
| 234 | + for f in dockerd docker-init docker-proxy; do |
204 | 235 | if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then
|
205 | 236 | cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${dockerBuildDir}/$f"
|
206 | 237 | fi
|
207 | 238 | done
|
| 239 | + # TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging |
| 240 | + mkdir -p "${containerdBuildDir}" |
| 241 | + for f in containerd ctr containerd-shim containerd-shim-runc-v2 runc; do |
| 242 | + if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then |
| 243 | + cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${containerdBuildDir}/$f" |
| 244 | + fi |
| 245 | + done |
208 | 246 | ;;
|
209 | 247 | windows)
|
210 | 248 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/dockerd-*.exe "${dockerBuildDir}/dockerd.exe"
|
211 | 249 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/docker-proxy-*.exe "${dockerBuildDir}/docker-proxy.exe"
|
212 | 250 | ;;
|
213 | 251 | esac
|
214 |
| -# package docker |
| 252 | +# package docker, containerd, and runc |
215 | 253 | case ${TARGETOS} in
|
216 |
| - linux | darwin) |
| 254 | + darwin) |
| 255 | + ( |
| 256 | + set -x |
| 257 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 258 | + ) |
| 259 | + ;; |
| 260 | + linux) |
217 | 261 | (
|
218 | 262 | set -x
|
219 |
| - tar -C "${buildDir}" -c -z -f "${buildDir}/docker-${STATIC_VERSION}.tgz" docker |
| 263 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 264 | + tar -C "${buildDir}" -c -z -f "${buildDir}/containerd-${CONTAINERD_VERSION#v}.tgz" containerd |
220 | 265 | )
|
221 | 266 | ;;
|
222 | 267 | windows)
|
223 | 268 | (
|
224 | 269 | cd "${buildDir}"
|
225 | 270 | set -x
|
226 |
| - zip -r "docker-${STATIC_VERSION}.zip" docker |
| 271 | + zip -r "docker-engine-${STATIC_VERSION}.zip" docker-engine |
227 | 272 | )
|
228 | 273 | ;;
|
229 | 274 | esac
|
|
358 | 403 | set -x
|
359 | 404 | cd "${buildDir}"
|
360 | 405 | rm -r */
|
| 406 | + # bundle is expected to have a tar.gz extension, unlike the other archives, which use .tgz |
361 | 407 | tar -zvcf "${CURDIR}/build/bundles-ce-static-${TARGETOS}-${BUNDLEARCH}.tar.gz" .
|
362 | 408 | )
|
0 commit comments