Bladeren bron

Pass VERSION variable to binary build targets.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Brian Goff 5 jaren geleden
bovenliggende
commit
c057825cf5
2 gewijzigde bestanden met toevoegingen van 19 en 7 verwijderingen
  1. 15 6
      Dockerfile
  2. 4 1
      Makefile

+ 15 - 6
Dockerfile

@@ -315,19 +315,28 @@ ENTRYPOINT ["hack/dind"]
 FROM dev AS src
 COPY . /go/src/github.com/docker/docker
 
-FROM src AS build-binary
+FROM src AS binary-base
 ARG DOCKER_GITCOMMIT=HEAD
+ENV DOCKER_GITCOMMIT=${DOCKER_GITCOMMIT}
+ARG VERSION
+ENV VERSION=${VERSION}
+ARG PLATFORM
+ENV PLATFORM=${PLATFORM}
+ARG PRODUCT
+ENV PRODUCT=${PRODUCT}
+ARG DEFAULT_PRODUCT_LICENSE
+ENV DEFAULT_PRODUCT_LICENSE=${DEFAULT_PRODUCT_LICENSE}
+
+FROM binary-base AS build-binary
 RUN --mount=type=cache,target=/root/.cache/go-build \
         hack/make.sh binary
 
-FROM src AS build-dynbinary
-ARG DOCKER_GITCOMMIT=HEAD
+FROM binary-base AS build-dynbinary
 RUN --mount=type=cache,target=/root/.cache/go-build \
         hack/make.sh dynbinary
 
-FROM src AS build-cross
-ARG DOCKER_GITCOMMIT=HEAD
-ARG DOCKER_CROSSPLATFORMS=""
+FROM binary-base AS build-cross
+ARG DOCKER_CROSSPLATFORMS
 RUN --mount=type=cache,target=/root/.cache/go-build \
         hack/make.sh cross
 

+ 4 - 1
Makefile

@@ -158,6 +158,8 @@ ifdef DOCKER_CROSSPLATFORMS
 BUILD_CROSS = --build-arg CROSS=true
 endif
 
+VERSION_AUTOGEN_ARGS = --build-arg VERSION --build-arg DOCKER_GITCOMMIT --build-arg PRODUCT --build-arg PLATFORM --build-arg DEFAULT_PRODUCT_LICENSE
+
 default: binary
 
 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
 cross: BUILD_OPTS += --build-arg CROSS=true --build-arg DOCKER_CROSSPLATFORMS
 
 binary dynbinary cross: buildx
-	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ .
+	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) .
 
 build: target = --target=final
 ifdef USE_BUILDX
@@ -264,6 +266,7 @@ ifdef USE_BUILDX
 ifeq ($(BUILDX), bundles/buildx)
 buildx: bundles/buildx ## build buildx cli tool
 endif
+endif
 
 # This intentionally is not using the `--output` flag from the docker CLI, which
 # is a buildkit option. The idea here being that if buildx is being used, it's