Skip to content

Commit 34f3c10

Browse files
[Makefile]: Automatically rebuild sonic-slave
sonic-slave is not built upon every make call, because it takes a lot of time. So in order to track changes hash of Dockerfile is included to sonic-slave image. Signed-off-by: marian-pritsak <marianp@mellanox.com>
1 parent 0873422 commit 34f3c10

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

Makefile

+15-6
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,30 @@ PWD := $(shell pwd)
99

1010
MAKEFLAGS += -B
1111

12+
SLAVE_TAG = $(shell shasum sonic-slave/Dockerfile | awk '{print substr($$1,0,11);}')
13+
SLAVE_IMAGE = sonic-slave-$(USER)
14+
1215
DOCKER_RUN := docker run --rm=true --privileged \
1316
-v $(PWD):/sonic \
1417
-i$(SONIC_SLAVE_TTY)
1518

16-
DOCKER_BUILD = docker build --no-cache \
19+
DOCKER_BUILD = docker build \
1720
--build-arg user=$(USER) \
1821
--build-arg uid=$(shell id -u) \
1922
--build-arg guid=$(shell id -g) \
20-
-t sonic-slave-$(USER) \
21-
sonic-slave
23+
-t $(SLAVE_IMAGE) \
24+
sonic-slave && \
25+
docker tag $(SLAVE_IMAGE):latest $(SLAVE_IMAGE):$(SLAVE_TAG)
2226

2327
.PHONY: sonic-slave-build sonic-slave-bash
2428

2529
.DEFAULT_GOAL := all
2630

2731
%::
28-
@docker inspect --type image sonic-slave-$(USER) &> /dev/null || $(DOCKER_BUILD)
29-
@$(DOCKER_RUN) sonic-slave-$(USER) make \
32+
@docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
33+
{ echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
34+
$(DOCKER_BUILD) ; }
35+
@$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) make \
3036
-C sonic \
3137
-f slave.mk \
3238
PLATFORM=$(PLATFORM) \
@@ -39,4 +45,7 @@ sonic-slave-build :
3945
@$(DOCKER_BUILD)
4046

4147
sonic-slave-bash :
42-
@$(DOCKER_RUN) -t sonic-slave-$(USER) bash
48+
@docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
49+
{ echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
50+
$(DOCKER_BUILD) ; }
51+
@$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash

0 commit comments

Comments
 (0)