build the final stage of the Dockerfile (including COPY ...) if no BIND_DIR
is used.
if BIND_DIR is used, build the dev stage, thus skipping the COPY.
Original author: @thaJeztah
Signed-off-by: Mohammad Nasirifar <farnasirim@gmail.com>
... | ... |
@@ -236,5 +236,7 @@ WORKDIR /go/src/github.com/docker/docker |
236 | 236 |
VOLUME /var/lib/docker |
237 | 237 |
# Wrap all commands in the "docker-in-docker" script to allow nested containers |
238 | 238 |
ENTRYPOINT ["hack/dind"] |
239 |
+ |
|
240 |
+FROM dev AS final |
|
239 | 241 |
# Upload docker source |
240 | 242 |
COPY . /go/src/github.com/docker/docker |
... | ... |
@@ -28,6 +28,7 @@ DOCKER_ENVS := \ |
28 | 28 |
-e KEEPBUNDLE \ |
29 | 29 |
-e DOCKER_BUILD_ARGS \ |
30 | 30 |
-e DOCKER_BUILD_GOGC \ |
31 |
+ -e DOCKER_BUILD_OPTS \ |
|
31 | 32 |
-e DOCKER_BUILD_PKGS \ |
32 | 33 |
-e DOCKER_BUILDKIT \ |
33 | 34 |
-e DOCKER_BASH_COMPLETION_PATH \ |
... | ... |
@@ -107,6 +108,9 @@ INTERACTIVE := $(shell [ -t 0 ] && echo 1 || echo 0) |
107 | 107 |
ifeq ($(INTERACTIVE), 1) |
108 | 108 |
DOCKER_FLAGS += -t |
109 | 109 |
endif |
110 |
+ifeq ($(BIND_DIR), .) |
|
111 |
+ DOCKER_BUILD_OPTS += --target=dev |
|
112 |
+endif |
|
110 | 113 |
|
111 | 114 |
DOCKER_RUN_DOCKER := $(DOCKER_FLAGS) "$(DOCKER_IMAGE)" |
112 | 115 |
|
... | ... |
@@ -123,7 +127,7 @@ dynbinary: build ## build the linux dynbinaries |
123 | 123 |
|
124 | 124 |
build: bundles |
125 | 125 |
$(warning The docker client CLI has moved to github.com/docker/cli. For a dev-test cycle involving the CLI, run:${\n} DOCKER_CLI_PATH=/host/path/to/cli/binary make shell ${\n} then change the cli and compile into a binary at the same location.${\n}) |
126 |
- docker build ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" . |
|
126 |
+ docker build ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} ${DOCKER_BUILD_OPTS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" . |
|
127 | 127 |
|
128 | 128 |
bundles: |
129 | 129 |
mkdir bundles |