1
1
include ../common.mk
2
2
3
- CLI_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/cli)
4
- ENGINE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/docker)
5
- BUILDX_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/buildx )
6
- COMPOSE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/compose )
3
+ CLI_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/cli)
4
+ ENGINE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/docker)
5
+ COMPOSE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/compose )
6
+ BUILDX_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/buildx )
7
7
8
- CLI_VERSION = $(shell ./gen-static-ver $(CLI_DIR ) $(VERSION ) )
9
- ENGINE_VERSION = $(shell ./gen-static-ver $(ENGINE_DIR ) $(VERSION ) )
10
- CONTAINERD_PKG_VER = $(shell ./gen-containerd-ver $(ENGINE_DIR ) $(CONTAINERD_VERSION ) )
8
+ CLI_VERSION = $(shell ./gen-static-ver $(CLI_DIR ) $(VERSION ) )
9
+ ENGINE_VERSION = $(shell ./gen-static-ver $(ENGINE_DIR ) $(VERSION ) )
10
+ CONTAINERD_PKG_VER = $(shell ./gen-containerd-ver $(ENGINE_DIR ) $(CONTAINERD_VERSION ) )
11
11
12
12
HASH_CMD =docker run -v $(CURDIR ) :/sum -w /sum debian:jessie bash hash_files
13
13
DIR_TO_HASH: =build/linux
@@ -53,20 +53,23 @@ static-linux: static-cli static-engine static-buildx-plugin static-compose-plugi
53
53
mkdir -p build/linux/docker-cli
54
54
cp $(CLI_DIR ) /build/docker build/linux/docker-cli/
55
55
tar -C build/linux -c -z -f build/linux/docker-cli-$(CLI_VERSION ) .tgz docker-cli
56
+ rm -r build/linux/docker-cli
56
57
57
58
# docker engine binaries
58
59
mkdir -p build/linux/docker-engine
59
60
for f in dockerd docker-init docker-proxy; do \
60
61
cp -L $(ENGINE_DIR)/bundles/binary-daemon/$$f build/linux/docker-engine/$$f; \
61
62
done
62
63
tar -C build/linux -c -z -f build/linux/docker-engine-$(ENGINE_VERSION).tgz docker-engine
64
+ rm -r build/linux/docker-engine
63
65
64
66
# containerd binaries
65
67
mkdir -p build/linux/containerd
66
68
for f in containerd ctr containerd-shim-runc-v2 runc; do \
67
69
cp -L $(ENGINE_DIR)/bundles/binary-daemon/$$f build/linux/containerd/$$f; \
68
70
done
69
71
tar -C build/linux -c -z -f build/linux/containerd-$(CONTAINERD_PKG_VER).tgz containerd
72
+ rm -r build/linux/containerd
70
73
71
74
# extra binaries for running rootless
72
75
mkdir -p build/linux/docker-rootless-extras
@@ -76,10 +79,13 @@ static-linux: static-cli static-engine static-buildx-plugin static-compose-plugi
76
79
fi \
77
80
done
78
81
tar -C build/linux -c -z -f build/linux/docker-rootless-extras-$(ENGINE_VERSION).tgz docker-rootless-extras
82
+ rm -r build/linux/docker-rootless-extras
79
83
80
- # compose, buildx
84
+ # docker compose
81
85
tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/linux/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
82
- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/linux/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
86
+
87
+ # docker buildx
88
+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/linux/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
83
89
84
90
.PHONY : hash_files
85
91
hash_files :
@@ -96,70 +102,76 @@ cross-mac: cross-mac-amd64 cross-mac-arm64
96
102
97
103
.PHONY : cross-mac-amd64
98
104
cross-mac-amd64 : TARGETPLATFORM=darwin/amd64
99
- cross-mac-amd64 : buildx
100
- # Call make again to forward the target platform, otherwise it'd would be reset
101
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
102
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-buildx-plugin
103
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
104
-
105
- # cli
105
+ cross-mac-amd64 : buildx static-cli static-buildx-plugin static-compose-plugin
106
+ # docker cli binaries
106
107
mkdir -p build/mac/amd64/docker-cli
107
108
cp -L $(CLI_DIR ) /build/docker build/mac/amd64/docker-cli/docker
108
109
tar -C build/mac/amd64/ -c -z -f build/mac/amd64/docker-cli-$(CLI_VERSION ) .tgz docker-cli
110
+ rm -r build/mac/amd64/docker-cli
109
111
110
- # compose, buildx
112
+ # docker compose
111
113
tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/mac/amd64/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
112
- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/amd64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
114
+
115
+ # docker buildx
116
+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/amd64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
113
117
114
118
.PHONY : cross-mac-arm64
115
119
cross-mac-arm64 : TARGETPLATFORM=darwin/arm64
116
- cross-mac-arm64 : buildx
117
- # Call make again to forward the target platform, otherwise it'd would be reset
118
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
119
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-buildx-plugin
120
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
121
-
122
- # cli
120
+ cross-mac-arm64 : buildx static-cli static-buildx-plugin static-compose-plugin
121
+ # docker cli binaries
123
122
mkdir -p build/mac/arm64/docker-cli
124
123
cp -L $(CLI_DIR ) /build/docker build/mac/arm64/docker-cli/docker
125
124
tar -C build/mac/arm64/ -c -z -f build/mac/arm64/docker-cli-$(CLI_VERSION ) .tgz docker-cli
125
+ rm -r build/mac/arm64/docker-cli
126
126
127
- # compose, buildx
127
+ # docker compose
128
128
tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/mac/arm64/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
129
- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/arm64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
129
+
130
+ # docker buildx
131
+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/arm64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
130
132
131
133
.PHONY : cross-win
132
134
cross-win : TARGETPLATFORM=windows/arm64
133
- cross-win : cross-win-engine
134
- # Call make again to forward the target platform, otherwise it'd would be reset
135
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
136
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) EXT=" .exe" static-buildx-plugin
137
- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
135
+ cross-win : EXT=.exe
136
+ cross-win : cross-win-engine static-cli static-buildx-plugin static-compose-plugin
137
+ # docker cli binaries
138
138
mkdir -p build/win/amd64/docker-cli
139
+ cp -L $(CLI_DIR ) /build/docker build/win/amd64/docker-cli/docker.exe
140
+
141
+ # docker engine binaries
139
142
mkdir -p build/win/amd64/docker-engine
140
- mkdir -p build/win/amd64/docker-buildx
143
+ for f in dockerd.exe docker-init docker-proxy.exe; do \
144
+ cp -L $(ENGINE_DIR)/bundles/cross/windows/amd64-daemon/$$f build/win/amd64/docker-engine/$$f; \
145
+ done
146
+
147
+ # docker compose, docker buildx
141
148
mkdir -p build/win/amd64/docker-compose
142
- cp -L $(CLI_DIR ) /build/docker build/win/amd64/docker-cli/docker.exe
143
- cp $(ENGINE_DIR ) /bundles/cross/windows/amd64-daemon/dockerd.exe build/win/amd64/docker-engine/dockerd.exe
144
- cp $(ENGINE_DIR ) /bundles/cross/windows/amd64-daemon/docker-proxy.exe build/win/amd64/docker-engine/docker-proxy.exe
145
- cp $(BUILDX_DIR ) /bin/docker-buildx.exe build/win/amd64/docker-buildx/docker-buildx.exe
146
149
cp $(COMPOSE_DIR)/bin/docker-compose/docker-compose.exe build/win/amd64/docker-compose/docker-compose.exe
147
150
151
+ # docker buildx
152
+ mkdir -p build/win/amd64/docker-buildx
153
+ cp $(BUILDX_DIR)/bin/docker-buildx.exe build/win/amd64/docker-buildx/docker-buildx.exe
154
+
148
155
docker run --rm -v $(CURDIR)/build/win/amd64:/v -w /v alpine sh -c 'apk add --no-cache zip \
149
156
&& zip -r docker-cli-$(CLI_VERSION).zip docker-cli \
150
157
&& zip -r docker-engine-$(ENGINE_VERSION).zip docker-engine \
151
- && zip -r docker-buildx -plugin-$(DOCKER_BUILDX_REF :v%=%).zip docker-buildx \
152
- && zip -r docker-compose -plugin-$(DOCKER_COMPOSE_REF :v%=%).zip docker-compose '
158
+ && zip -r docker-compose -plugin-$(DOCKER_COMPOSE_REF :v%=%).zip docker-compose \
159
+ && zip -r docker-buildx -plugin-$(DOCKER_BUILDX_REF :v%=%).zip docker-buildx '
153
160
$(CHOWN) -R $(shell id -u):$(shell id -g) build
154
161
162
+ # clean up temporary directories
163
+ $(RM) -r build/win/amd64/docker-cli build/win/amd64/docker-engine build/win/amd64/docker-compose build/win/amd64/docker-buildx
164
+
155
165
.PHONY : cross-arm
156
166
cross-arm : cross-all-cli # # create tgz with linux armhf client only
157
167
mkdir -p build/arm/docker-cli
158
168
cp $(CLI_DIR ) /build/docker-linux-arm build/arm/docker-cli/docker
159
169
tar -C build/arm -c -z -f build/arm/docker-cli-$(CLI_VERSION ) .tgz docker-cli
170
+ rm -r build/arm/docker-cli
160
171
161
172
.PHONY : static-cli
162
173
static-cli :
174
+ # TODO(thaJeztah) check if CGO_ENABLED variable is correct here
163
175
cd $(CLI_DIR ) && VERSION=$(CLI_VERSION ) docker buildx bake --set binary.platform=$(TARGETPLATFORM ) --set binary.args.CGO_ENABLED=$(CGO_ENABLED ) binary
164
176
165
177
.PHONY : static-engine
@@ -181,10 +193,6 @@ static-compose-plugin:
181
193
182
194
ls -laR $(COMPOSE_DIR)/bin
183
195
184
- .PHONY : cross-cli
185
- cross-cli :
186
- cd $(CLI_DIR ) && VERSION=$(CLI_VERSION ) docker buildx bake --set binary.platform=" $( or $( TARGETPLATFORM) ,local) " binary
187
-
188
196
.PHONY : cross-all-cli
189
197
cross-all-cli :
190
198
$(MAKE ) -C $(CLI_DIR ) -f docker.Makefile VERSION=$(CLI_VERSION ) cross
0 commit comments