|
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 | (
|
@@ -128,6 +137,7 @@ echo "UNAME=$(uname -m)"
|
128 | 137 | echo "TARGETPLATFORM=${TARGETPLATFORM}"
|
129 | 138 | echo "CURPLATFORM=${CURPLATFORM}"
|
130 | 139 | echo "CROSS=${CROSS}"
|
| 140 | +echo "CONTAINERD_VERSION=${CONTAINERD_VERSION}" |
131 | 141 |
|
132 | 142 | cgo_enabled=""
|
133 | 143 | if [ "$TARGETARCH" = "arm" ] && [ -n "$TARGETVARIANT" ]; then
|
|
141 | 151 |
|
142 | 152 | buildDir="${CURDIR}/build/${TARGETPLATFORM}"
|
143 | 153 |
|
144 |
| -dockerBuildDir="${buildDir}/docker" |
| 154 | +dockerCLIBuildDir="${buildDir}/docker-cli" |
| 155 | +dockerBuildDir="${buildDir}/docker-engine" |
| 156 | +containerdBuildDir="${buildDir}/containerd" |
145 | 157 | rootlessExtrasBuildDir="${buildDir}/docker-rootless-extras"
|
146 | 158 | buildxBuildDir="${buildDir}/docker-buildx"
|
147 | 159 | composeBuildDir="${buildDir}/docker-compose"
|
@@ -186,42 +198,75 @@ esac
|
186 | 198 | # cleanup
|
187 | 199 | [ -d "${buildDir}" ] && rm -r "${buildDir}"
|
188 | 200 |
|
189 |
| -# docker |
190 |
| -mkdir -p "${dockerBuildDir}" |
| 201 | +# docker CLI |
| 202 | +mkdir -p "${dockerCLIBuildDir}" |
| 203 | +case ${TARGETOS} in |
| 204 | + linux | darwin) |
| 205 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerCLIBuildDir}/docker" |
| 206 | + ;; |
| 207 | + windows) |
| 208 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerCLIBuildDir}/docker.exe" |
| 209 | + ;; |
| 210 | +esac |
| 211 | +# package docker CLI |
191 | 212 | case ${TARGETOS} in
|
192 | 213 | linux | darwin)
|
193 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerBuildDir}/docker" |
| 214 | + ( |
| 215 | + set -x |
| 216 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-cli-${STATIC_VERSION}.tgz" docker-cli |
| 217 | + ) |
194 | 218 | ;;
|
195 | 219 | windows)
|
196 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerBuildDir}/docker.exe" |
| 220 | + ( |
| 221 | + cd "${buildDir}" |
| 222 | + set -x |
| 223 | + zip -r "docker-cli-${STATIC_VERSION}.zip" docker-cli |
| 224 | + ) |
197 | 225 | ;;
|
198 | 226 | esac
|
| 227 | + |
| 228 | +# docker, containerd, and runc |
| 229 | +mkdir -p "${dockerBuildDir}" |
199 | 230 | case ${TARGETOS} in
|
200 | 231 | linux)
|
201 |
| - for f in dockerd containerd ctr containerd-shim containerd-shim-runc-v2 docker-init docker-proxy runc; do |
| 232 | + for f in dockerd docker-init docker-proxy; do |
202 | 233 | if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then
|
203 | 234 | cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${dockerBuildDir}/$f"
|
204 | 235 | fi
|
205 | 236 | done
|
| 237 | + # TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging |
| 238 | + mkdir -p "${containerdBuildDir}" |
| 239 | + for f in containerd ctr containerd-shim containerd-shim-runc-v2 runc; do |
| 240 | + if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then |
| 241 | + cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${containerdBuildDir}/$f" |
| 242 | + fi |
| 243 | + done |
206 | 244 | ;;
|
207 | 245 | windows)
|
208 | 246 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/dockerd.exe "${dockerBuildDir}/dockerd.exe"
|
209 | 247 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/docker-proxy.exe "${dockerBuildDir}/docker-proxy.exe"
|
210 | 248 | ;;
|
211 | 249 | esac
|
212 |
| -# package docker |
| 250 | +# package docker, containerd, and runc |
213 | 251 | case ${TARGETOS} in
|
214 |
| - linux | darwin) |
| 252 | + darwin) |
| 253 | + ( |
| 254 | + set -x |
| 255 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 256 | + ) |
| 257 | + ;; |
| 258 | + linux) |
215 | 259 | (
|
216 | 260 | set -x
|
217 |
| - tar -C "${buildDir}" -c -z -f "${buildDir}/docker-${STATIC_VERSION}.tgz" docker |
| 261 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 262 | + tar -C "${buildDir}" -c -z -f "${buildDir}/containerd-${CONTAINERD_VERSION#v}.tgz" containerd |
218 | 263 | )
|
219 | 264 | ;;
|
220 | 265 | windows)
|
221 | 266 | (
|
222 | 267 | cd "${buildDir}"
|
223 | 268 | set -x
|
224 |
| - zip -r "docker-${STATIC_VERSION}.zip" docker |
| 269 | + zip -r "docker-engine-${STATIC_VERSION}.zip" docker-engine |
225 | 270 | )
|
226 | 271 | ;;
|
227 | 272 | esac
|
|
356 | 401 | set -x
|
357 | 402 | cd "${buildDir}"
|
358 | 403 | rm -r */
|
| 404 | + # bundle is expected to have a tar.gz extension, unlike the other archives, which use .tgz |
359 | 405 | tar -zvcf "${CURDIR}/build/bundles-ce-static-${TARGETOS}-${BUNDLEARCH}.tar.gz" .
|
360 | 406 | )
|
0 commit comments