This was inadvertently removed when updating the Dockerfile for buildkit
specific features.
Trick selects a different build target depending on if the source is
going to be bind-mounted in anyway, which prevents the need to copy the
whole source tree to the builder.
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
| ... | ... |
@@ -299,19 +299,21 @@ WORKDIR /go/src/github.com/docker/docker |
| 299 | 299 |
VOLUME /var/lib/docker |
| 300 | 300 |
# Wrap all commands in the "docker-in-docker" script to allow nested containers |
| 301 | 301 |
ENTRYPOINT ["hack/dind"] |
| 302 |
+ |
|
| 303 |
+FROM dev AS src |
|
| 302 | 304 |
COPY . /go/src/github.com/docker/docker |
| 303 | 305 |
|
| 304 |
-FROM dev AS build-binary |
|
| 306 |
+FROM src AS build-binary |
|
| 305 | 307 |
ARG DOCKER_GITCOMMIT=HEAD |
| 306 | 308 |
RUN --mount=type=cache,target=/root/.cache/go-build \ |
| 307 | 309 |
hack/make.sh binary |
| 308 | 310 |
|
| 309 |
-FROM dev AS build-dynbinary |
|
| 311 |
+FROM src AS build-dynbinary |
|
| 310 | 312 |
ARG DOCKER_GITCOMMIT=HEAD |
| 311 | 313 |
RUN --mount=type=cache,target=/root/.cache/go-build \ |
| 312 | 314 |
hack/make.sh dynbinary |
| 313 | 315 |
|
| 314 |
-FROM dev AS build-cross |
|
| 316 |
+FROM src AS build-cross |
|
| 315 | 317 |
ARG DOCKER_GITCOMMIT=HEAD |
| 316 | 318 |
ARG DOCKER_CROSSPLATFORMS="" |
| 317 | 319 |
RUN --mount=type=cache,target=/root/.cache/go-build \ |
| ... | ... |
@@ -326,4 +328,4 @@ COPY --from=build-dynbinary /go/src/github.com/docker/docker/bundles/ / |
| 326 | 326 |
FROM scratch AS cross |
| 327 | 327 |
COPY --from=build-cross /go/src/github.com/docker/docker/bundles/ / |
| 328 | 328 |
|
| 329 |
-FROM dev AS final |
|
| 329 |
+FROM src AS final |
| ... | ... |
@@ -187,7 +187,11 @@ install: ## install the linux binaries |
| 187 | 187 |
run: build ## run the docker daemon in a container |
| 188 | 188 |
$(DOCKER_RUN_DOCKER) sh -c "KEEPBUNDLE=1 hack/make.sh install-binary run" |
| 189 | 189 |
|
| 190 |
+ifeq ($(BIND_DIR), .) |
|
| 190 | 191 |
shell: DOCKER_BUILD_ARGS += --target=dev |
| 192 |
+else |
|
| 193 |
+shell: DOCKER_BUILD_ARGS += --target=final |
|
| 194 |
+endif |
|
| 191 | 195 |
shell: BUILDX_BUILD_EXTRA_OPTS += --load |
| 192 | 196 |
shell: build ## start a shell inside the build env |
| 193 | 197 |
$(DOCKER_RUN_DOCKER) bash |