@@ -43,43 +43,19 @@ build_cli() {
43
43
build_engine () {
44
44
(
45
45
cd " ${ENGINE_DIR} "
46
- mkdir -p autogen # FIXME: remove when https://github.com/moby/moby/pull/43431 merged
47
46
set -x
48
47
docker buildx build \
48
+ --build-arg BUILDKIT_MULTI_PLATFORM=true \
49
+ --build-arg DOCKER_LINKMODE=static \
49
50
--build-arg CONTAINERD_VERSION \
50
51
--build-arg DEFAULT_PRODUCT_LICENSE \
51
52
--build-arg PACKAGER_NAME \
52
53
--build-arg PLATFORM \
53
54
--build-arg PRODUCT \
54
- --build-arg RUNC_VERSION \
55
55
--build-arg VERSION=" ${STATIC_VERSION} " \
56
- --output ./bundles \
56
+ --output ./build \
57
57
--platform " ${TARGETPLATFORM} " \
58
- --target binary .
59
- mkdir -p ./bundles/" ${TARGETPLATFORM} "
60
- cp -r ./bundles/binary-daemon/* " ./bundles/${TARGETPLATFORM} /"
61
- )
62
- }
63
-
64
- build_engine_cross () {
65
- (
66
- cd " ${ENGINE_DIR} "
67
- mkdir -p autogen # FIXME: remove when https://github.com/moby/moby/pull/43431 merged
68
- set -x
69
- docker buildx build \
70
- --build-arg CONTAINERD_VERSION \
71
- --build-arg CROSS=true \
72
- --build-arg DEFAULT_PRODUCT_LICENSE \
73
- --build-arg DOCKER_CROSSPLATFORMS=" ${TARGETPLATFORM} " \
74
- --build-arg PACKAGER_NAME \
75
- --build-arg PLATFORM \
76
- --build-arg PRODUCT \
77
- --build-arg RUNC_VERSION \
78
- --build-arg VERSION=" ${STATIC_VERSION} " \
79
- --output ./bundles \
80
- --target cross .
81
- mkdir -p " ./bundles/${TARGETPLATFORM} "
82
- cp ./bundles/cross/" ${TARGETPLATFORM} " -daemon/* " ./bundles/${TARGETPLATFORM} /"
58
+ --target all .
83
59
)
84
60
}
85
61
@@ -113,14 +89,8 @@ build_scan() {
113
89
)
114
90
}
115
91
116
- CROSS=true
117
- if [ " $( xx-info march) " = " $( uname -m) " ] && [ " $( xx-info os) " = " linux" ]; then
118
- CROSS=false
119
- fi
120
-
121
92
xx-info env
122
93
echo " TARGETPLATFORM=${TARGETPLATFORM} "
123
- echo " CROSS=${CROSS} "
124
94
echo " CONTAINERD_VERSION=${CONTAINERD_VERSION} "
125
95
126
96
targetPair=" $( xx-info os) _$( xx-info arch) "
@@ -140,7 +110,7 @@ scanBuildDir="${buildDir}/docker-scan"
140
110
141
111
# clean up previous build output dirs
142
112
[ -d " ${CLI_DIR:? } /build" ] && rm -r " ${CLI_DIR:? } /build"
143
- [ -d " ${ENGINE_DIR:? } /bundles " ] && rm -r " ${ENGINE_DIR:? } /bundles "
113
+ [ -d " ${ENGINE_DIR:? } /build " ] && rm -r " ${ENGINE_DIR:? } /build "
144
114
[ -d " ${BUILDX_DIR:? } /bin" ] && rm -r " ${BUILDX_DIR:? } /bin"
145
115
[ -d " ${COMPOSE_DIR:? } /bin" ] && rm -r " ${COMPOSE_DIR:? } /bin"
146
116
[ -d " ${SCAN_DIR:? } /dist" ] && rm -r " ${SCAN_DIR:? } /dist"
@@ -151,11 +121,7 @@ docker buildx inspect | grep -q 'Driver: docker-container' || docker buildx crea
151
121
case $( xx-info os) in
152
122
linux)
153
123
build_cli
154
- if [ " $CROSS " = " false" ]; then
155
- build_engine
156
- else
157
- build_engine_cross
158
- fi
124
+ build_engine
159
125
build_buildx
160
126
build_compose
161
127
# TODO change once we support scan-plugin on other architectures
@@ -171,7 +137,7 @@ case $(xx-info os) in
171
137
;;
172
138
windows)
173
139
build_cli
174
- build_engine_cross
140
+ build_engine
175
141
build_buildx
176
142
build_compose
177
143
# TODO change once we support scan-plugin on other architectures
@@ -216,21 +182,24 @@ mkdir -p "${dockerBuildDir}"
216
182
case $( xx-info os) in
217
183
linux)
218
184
for f in dockerd docker-init docker-proxy; do
219
- if [ -f " ${ENGINE_DIR} /bundles /${TARGETPLATFORM } /$f " ]; then
220
- cp -L " ${ENGINE_DIR} /bundles /${TARGETPLATFORM } /$f " " ${dockerBuildDir} /$f "
185
+ if [ -f " ${ENGINE_DIR} /build /${targetPair } /$f " ]; then
186
+ cp -L " ${ENGINE_DIR} /build /${targetPair } /$f " " ${dockerBuildDir} /$f "
221
187
fi
222
188
done
223
189
# TODO containerd binaries should be built as part of containerd-packaging, not as part of docker/docker-ce-packaging
224
190
mkdir -p " ${containerdBuildDir} "
225
191
for f in containerd ctr containerd-shim containerd-shim-runc-v2 runc; do
226
- if [ -f " ${ENGINE_DIR} /bundles /${TARGETPLATFORM } /$f " ]; then
227
- cp -L " ${ENGINE_DIR} /bundles /${TARGETPLATFORM } /$f " " ${containerdBuildDir} /$f "
192
+ if [ -f " ${ENGINE_DIR} /build /${targetPair } /$f " ]; then
193
+ cp -L " ${ENGINE_DIR} /build /${targetPair } /$f " " ${containerdBuildDir} /$f "
228
194
fi
229
195
done
230
196
;;
231
197
windows)
232
- cp " ${ENGINE_DIR} " /bundles/" ${TARGETPLATFORM} " /dockerd-* .exe " ${dockerBuildDir} /dockerd.exe"
233
- cp " ${ENGINE_DIR} " /bundles/" ${TARGETPLATFORM} " /docker-proxy-* .exe " ${dockerBuildDir} /docker-proxy.exe"
198
+ for f in dockerd.exe docker-proxy.exe; do
199
+ if [ -f " ${ENGINE_DIR} /build/${targetPair} /$f " ]; then
200
+ cp -L " ${ENGINE_DIR} /build/${targetPair} /$f " " ${dockerBuildDir} /$f "
201
+ fi
202
+ done
234
203
;;
235
204
esac
236
205
# package docker, containerd, and runc
0 commit comments