|
14 | 14 |
|
15 | 15 | source "../scripts/target-platform"
|
16 | 16 |
|
| 17 | +if [ -z "$CONTAINERD_VERSION" ]; then |
| 18 | + # Select the default version of containerd based on the docker engine source, |
| 19 | + # which is needed for naming the produced .tgz file. We normalize the value to |
| 20 | + # always have a "v" prefix. |
| 21 | + # TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging |
| 22 | + CONTAINERD_VERSION="$(awk -F'=' '$1 == "ARG CONTAINERD_VERSION" {{sub("v","")}; print "v" $2 }' "${ENGINE_DIR}/Dockerfile.windows")" |
| 23 | + export CONTAINERD_VERSION |
| 24 | +fi |
| 25 | + |
17 | 26 | build_cli() {
|
18 | 27 | [ -d "${CLI_DIR:?}/build" ] && rm -r "${CLI_DIR:?}/build"
|
19 | 28 | (
|
@@ -122,6 +131,7 @@ echo "UNAME=$(uname -m)"
|
122 | 131 | echo "TARGETPLATFORM=${TARGETPLATFORM}"
|
123 | 132 | echo "CURPLATFORM=${CURPLATFORM}"
|
124 | 133 | echo "CROSS=${CROSS}"
|
| 134 | +echo "CONTAINERD_VERSION=${CONTAINERD_VERSION}" |
125 | 135 |
|
126 | 136 | cgo_enabled=""
|
127 | 137 | if [ "$TARGETARCH" = "arm" ] && [ -n "$TARGETVARIANT" ]; then
|
|
135 | 145 |
|
136 | 146 | buildDir="${CURDIR}/build/${TARGETPLATFORM}"
|
137 | 147 |
|
138 |
| -dockerBuildDir="${buildDir}/docker" |
| 148 | +dockerCLIBuildDir="${buildDir}/docker-cli" |
| 149 | +dockerBuildDir="${buildDir}/docker-engine" |
| 150 | +containerdBuildDir="${buildDir}/containerd" |
139 | 151 | rootlessExtrasBuildDir="${buildDir}/docker-rootless-extras"
|
140 | 152 | buildxBuildDir="${buildDir}/docker-buildx"
|
141 | 153 | composeBuildDir="${buildDir}/docker-compose"
|
@@ -180,42 +192,75 @@ esac
|
180 | 192 | # cleanup
|
181 | 193 | [ -d "${buildDir}" ] && rm -r "${buildDir}"
|
182 | 194 |
|
183 |
| -# docker |
184 |
| -mkdir -p "${dockerBuildDir}" |
| 195 | +# docker CLI |
| 196 | +mkdir -p "${dockerCLIBuildDir}" |
| 197 | +case ${TARGETOS} in |
| 198 | + linux | darwin) |
| 199 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerCLIBuildDir}/docker" |
| 200 | + ;; |
| 201 | + windows) |
| 202 | + cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerCLIBuildDir}/docker.exe" |
| 203 | + ;; |
| 204 | +esac |
| 205 | +# package docker CLI |
185 | 206 | case ${TARGETOS} in
|
186 | 207 | linux | darwin)
|
187 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-* "${dockerBuildDir}/docker" |
| 208 | + ( |
| 209 | + set -x |
| 210 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-cli-${STATIC_VERSION}.tgz" docker-cli |
| 211 | + ) |
188 | 212 | ;;
|
189 | 213 | windows)
|
190 |
| - cp "${CLI_DIR}"/build/"${targetPair}"/docker-"${TARGETOS}"-*.exe "${dockerBuildDir}/docker.exe" |
| 214 | + ( |
| 215 | + cd "${buildDir}" |
| 216 | + set -x |
| 217 | + zip -r "docker-cli-${STATIC_VERSION}.zip" docker-cli |
| 218 | + ) |
191 | 219 | ;;
|
192 | 220 | esac
|
| 221 | + |
| 222 | +# docker, containerd, and runc |
| 223 | +mkdir -p "${dockerBuildDir}" |
193 | 224 | case ${TARGETOS} in
|
194 | 225 | linux)
|
195 |
| - for f in dockerd containerd ctr containerd-shim containerd-shim-runc-v2 docker-init docker-proxy runc; do |
| 226 | + for f in dockerd docker-init docker-proxy; do |
196 | 227 | if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then
|
197 | 228 | cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${dockerBuildDir}/$f"
|
198 | 229 | fi
|
199 | 230 | done
|
| 231 | + # TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging |
| 232 | + mkdir -p "${containerdBuildDir}" |
| 233 | + for f in containerd ctr containerd-shim containerd-shim-runc-v2 runc; do |
| 234 | + if [ -f "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" ]; then |
| 235 | + cp -L "${ENGINE_DIR}/bundles/${TARGETPLATFORM}/$f" "${containerdBuildDir}/$f" |
| 236 | + fi |
| 237 | + done |
200 | 238 | ;;
|
201 | 239 | windows)
|
202 | 240 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/dockerd-*.exe "${dockerBuildDir}/dockerd.exe"
|
203 | 241 | cp "${ENGINE_DIR}"/bundles/"${TARGETPLATFORM}"/docker-proxy-*.exe "${dockerBuildDir}/docker-proxy.exe"
|
204 | 242 | ;;
|
205 | 243 | esac
|
206 |
| -# package docker |
| 244 | +# package docker, containerd, and runc |
207 | 245 | case ${TARGETOS} in
|
208 |
| - linux | darwin) |
| 246 | + darwin) |
| 247 | + ( |
| 248 | + set -x |
| 249 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 250 | + ) |
| 251 | + ;; |
| 252 | + linux) |
209 | 253 | (
|
210 | 254 | set -x
|
211 |
| - tar -C "${buildDir}" -c -z -f "${buildDir}/docker-${STATIC_VERSION}.tgz" docker |
| 255 | + tar -C "${buildDir}" -c -z -f "${buildDir}/docker-engine-${STATIC_VERSION}.tgz" docker-engine |
| 256 | + tar -C "${buildDir}" -c -z -f "${buildDir}/containerd-${CONTAINERD_VERSION#v}.tgz" containerd |
212 | 257 | )
|
213 | 258 | ;;
|
214 | 259 | windows)
|
215 | 260 | (
|
216 | 261 | cd "${buildDir}"
|
217 | 262 | set -x
|
218 |
| - zip -r "docker-${STATIC_VERSION}.zip" docker |
| 263 | + zip -r "docker-engine-${STATIC_VERSION}.zip" docker-engine |
219 | 264 | )
|
220 | 265 | ;;
|
221 | 266 | esac
|
|
350 | 395 | set -x
|
351 | 396 | cd "${buildDir}"
|
352 | 397 | rm -r */
|
| 398 | + # bundle is expected to have a tar.gz extension, unlike the other archives, which use .tgz |
353 | 399 | tar -zvcf "${CURDIR}/build/bundles-ce-static-${TARGETOS}-${BUNDLEARCH}.tar.gz" .
|
354 | 400 | )
|
0 commit comments