Browse code

Pass VERSION variable to binary build targets.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>

Brian Goff authored on 2019/10/17 02:09:10
Showing 2 changed files
... ...
@@ -315,19 +315,28 @@ ENTRYPOINT ["hack/dind"]
315 315
 FROM dev AS src
316 316
 COPY . /go/src/github.com/docker/docker
317 317
 
318
-FROM src AS build-binary
318
+FROM src AS binary-base
319 319
 ARG DOCKER_GITCOMMIT=HEAD
320
+ENV DOCKER_GITCOMMIT=${DOCKER_GITCOMMIT}
321
+ARG VERSION
322
+ENV VERSION=${VERSION}
323
+ARG PLATFORM
324
+ENV PLATFORM=${PLATFORM}
325
+ARG PRODUCT
326
+ENV PRODUCT=${PRODUCT}
327
+ARG DEFAULT_PRODUCT_LICENSE
328
+ENV DEFAULT_PRODUCT_LICENSE=${DEFAULT_PRODUCT_LICENSE}
329
+
330
+FROM binary-base AS build-binary
320 331
 RUN --mount=type=cache,target=/root/.cache/go-build \
321 332
         hack/make.sh binary
322 333
 
323
-FROM src AS build-dynbinary
324
-ARG DOCKER_GITCOMMIT=HEAD
334
+FROM binary-base AS build-dynbinary
325 335
 RUN --mount=type=cache,target=/root/.cache/go-build \
326 336
         hack/make.sh dynbinary
327 337
 
328
-FROM src AS build-cross
329
-ARG DOCKER_GITCOMMIT=HEAD
330
-ARG DOCKER_CROSSPLATFORMS=""
338
+FROM binary-base AS build-cross
339
+ARG DOCKER_CROSSPLATFORMS
331 340
 RUN --mount=type=cache,target=/root/.cache/go-build \
332 341
         hack/make.sh cross
333 342
 
... ...
@@ -158,6 +158,8 @@ ifdef DOCKER_CROSSPLATFORMS
158 158
 BUILD_CROSS = --build-arg CROSS=true
159 159
 endif
160 160
 
161
+VERSION_AUTOGEN_ARGS = --build-arg VERSION --build-arg DOCKER_GITCOMMIT --build-arg PRODUCT --build-arg PLATFORM --build-arg DEFAULT_PRODUCT_LICENSE
162
+
161 163
 default: binary
162 164
 
163 165
 all: build ## validate all checks, build linux binaries, run all tests\ncross build non-linux binaries and generate archives
... ...
@@ -170,7 +172,7 @@ cross: ## cross build the binaries for darwin, freebsd and\nwindows
170 170
 cross: BUILD_OPTS += --build-arg CROSS=true --build-arg DOCKER_CROSSPLATFORMS
171 171
 
172 172
 binary dynbinary cross: buildx
173
-	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ .
173
+	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) .
174 174
 
175 175
 build: target = --target=final
176 176
 ifdef USE_BUILDX
... ...
@@ -264,6 +266,7 @@ ifdef USE_BUILDX
264 264
 ifeq ($(BUILDX), bundles/buildx)
265 265
 buildx: bundles/buildx ## build buildx cli tool
266 266
 endif
267
+endif
267 268
 
268 269
 # This intentionally is not using the `--output` flag from the docker CLI, which
269 270
 # is a buildkit option. The idea here being that if buildx is being used, it's