Signed-off-by: Brian Goff <cpuguy83@gmail.com>
| ... | ... |
@@ -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 |