11include vars.mk
22
3- IMAGE_NAME := docker-app
3+ LINT_IMAGE_NAME := $(BIN_NAME ) -lint:$(TAG )
4+ DEV_IMAGE_NAME := $(BIN_NAME ) -dev:$(TAG )
5+ BIN_IMAGE_NAME := $(BIN_NAME ) -bin:$(TAG )
6+ CROSS_IMAGE_NAME := $(BIN_NAME ) -cross:$(TAG )
7+ E2E_CROSS_IMAGE_NAME := $(BIN_NAME ) -e2e-cross:$(TAG )
8+ GRADLE_IMAGE_NAME := $(BIN_NAME ) -gradle:$(TAG )
9+
10+ BIN_CTNR_NAME := $(BIN_NAME ) -bin-$(TAG )
11+ CROSS_CTNR_NAME := $(BIN_NAME ) -cross-$(TAG )
12+ E2E_CROSS_CTNR_NAME := $(BIN_NAME ) -e2e-cross-$(TAG )
13+ COV_CTNR_NAME := $(BIN_NAME ) -cov-$(TAG )
414
515IMAGE_BUILD_ARGS := \
616 --build-arg COMMIT=$(COMMIT ) \
@@ -16,36 +26,36 @@ create_bin:
1626 @$(call mkdir,bin)
1727
1828build_dev_image :
19- docker build --target=dev -t $(IMAGE_NAME ) -dev $(IMAGE_BUILD_ARGS ) .
29+ docker build --target=dev -t $(DEV_IMAGE_NAME ) $(IMAGE_BUILD_ARGS ) .
2030
2131shell : build_dev_image
22- docker run -ti --rm $(IMAGE_NAME ) -dev bash
32+ docker run -ti --rm $(DEV_IMAGE_NAME ) bash
2333
2434bin/$(BIN_NAME ) -linux : create_bin
25- docker build --target=$(BIN_NAME ) -t $(IMAGE_NAME ) -bin $(IMAGE_BUILD_ARGS ) .
26- $( eval containerID= $( shell docker create $( IMAGE_NAME ) -bin noop) )
27- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) $@
28- docker rm $(containerID )
35+ docker build --target=$(BIN_NAME ) -t $(BIN_IMAGE_NAME ) $(IMAGE_BUILD_ARGS ) .
36+ docker create --name $( BIN_CTNR_NAME ) $( BIN_IMAGE_NAME ) noop
37+ docker cp $(BIN_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) $@
38+ docker rm $(BIN_CTNR_NAME )
2939 @chmod +x $@
3040
3141cross : create_bin
32- docker build --target=$* -t $(IMAGE_NAME ) -cross $(IMAGE_BUILD_ARGS ) .
33- $( eval containerID= $( shell docker create $( IMAGE_NAME ) -cross noop) )
34- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -linux bin/$(BIN_NAME ) -linux
35- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -darwin bin/$(BIN_NAME ) -darwin
36- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -windows.exe bin/$(BIN_NAME ) -windows.exe
37- docker rm $(containerID )
42+ docker build --target=$* -t $(CROSS_IMAGE_NAME ) $(IMAGE_BUILD_ARGS ) .
43+ docker create --name $( CROSS_CTNR_NAME ) $( CROSS_IMAGE_NAME ) noop
44+ docker cp $(CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -linux bin/$(BIN_NAME ) -linux
45+ docker cp $(CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -darwin bin/$(BIN_NAME ) -darwin
46+ docker cp $(CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -windows.exe bin/$(BIN_NAME ) -windows.exe
47+ docker rm $(CROSS_CTNR_NAME )
3848 @$(call chmod,+x,bin/$(BIN_NAME ) -linux)
3949 @$(call chmod,+x,bin/$(BIN_NAME ) -darwin)
4050 @$(call chmod,+x,bin/$(BIN_NAME ) -windows.exe)
4151
4252e2e-cross : create_bin
43- docker build --target=e2e-cross -t $(IMAGE_NAME ) -e2e-cross $(IMAGE_BUILD_ARGS ) .
44- $( eval containerID= $( shell docker create $( IMAGE_NAME ) -e2e-cross noop) )
45- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-linux bin/$(BIN_NAME ) -e2e-linux
46- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-darwin bin/$(BIN_NAME ) -e2e-darwin
47- docker cp $(containerID ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-windows.exe bin/$(BIN_NAME ) -e2e-windows.exe
48- docker rm $(containerID )
53+ docker build --target=e2e-cross -t $(E2E_CROSS_IMAGE_NAME ) $(IMAGE_BUILD_ARGS ) .
54+ docker create --name $( E2E_CROSS_CTNR_NAME ) $( E2E_CROSS_IMAGE_NAME ) noop
55+ docker cp $(E2E_CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-linux bin/$(BIN_NAME ) -e2e-linux
56+ docker cp $(E2E_CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-darwin bin/$(BIN_NAME ) -e2e-darwin
57+ docker cp $(E2E_CROSS_CTNR_NAME ) :$(PKG_PATH ) /bin/$(BIN_NAME ) -e2e-windows.exe bin/$(BIN_NAME ) -e2e-windows.exe
58+ docker rm $(E2E_CROSS_CTNR_NAME )
4959 @$(call chmod,+x,bin/$(BIN_NAME ) -e2e-linux)
5060 @$(call chmod,+x,bin/$(BIN_NAME ) -e2e-darwin)
5161 @$(call chmod,+x,bin/$(BIN_NAME ) -e2e-windows.exe)
@@ -61,26 +71,26 @@ tars:
6171test : test-unit test-e2e
6272
6373test-unit : build_dev_image
64- docker run --rm $(IMAGE_NAME ) -dev make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} test-unit
74+ docker run --rm $(DEV_IMAGE_NAME ) make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} test-unit
6575
6676test-e2e : build_dev_image
67- docker run -v /var/run:/var/run:ro --rm $(IMAGE_NAME ) -dev make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} bin/$(BIN_NAME ) test-e2e
77+ docker run -v /var/run:/var/run:ro --rm $(DEV_IMAGE_NAME ) make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} bin/$(BIN_NAME ) test-e2e
6878
6979COV_LABEL := com.docker.app.cov-run=$(TAG )
7080coverage : build_dev_image
7181 @$(call mkdir,_build)
72- $( eval containerID= $( shell docker run -v /var/run:/var/run:ro -tid $(IMAGE_NAME ) -dev make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} coverage) )
73- docker logs -f $(containerID )
74- docker cp $(containerID ) :$(PKG_PATH ) /_build/cov/ ./_build/ci-cov
75- docker rm $(containerID )
82+ docker run -v /var/run:/var/run:ro --name $(COV_CTNR_NAME ) -tid $( DEV_IMAGE_NAME ) make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} coverage
83+ docker logs -f $(COV_CTNR_NAME )
84+ docker cp $(COV_CTNR_NAME ) :$(PKG_PATH ) /_build/cov/ ./_build/ci-cov
85+ docker rm $(COV_CTNR_NAME )
7686
7787gradle-test : bin/$(BIN_NAME ) -linux
78- docker build -t $(IMAGE_NAME ) -bin -f Dockerfile.gradle .
79- docker run --rm $(IMAGE_NAME ) -bin bash -c " ./gradlew --stacktrace build && cd example && gradle renderIt"
88+ docker build -t $(GRADLE_IMAGE_NAME ) -f Dockerfile.gradle .
89+ docker run --rm $(GRADLE_IMAGE_NAME ) bash -c " ./gradlew --stacktrace build && cd example && gradle renderIt"
8090
8191lint :
8292 @echo " Linting..."
83- docker build -t $(IMAGE_NAME ) -lint: $( TAG ) $(IMAGE_BUILD_ARGS ) -f Dockerfile.lint .
84- docker run --rm $(IMAGE_NAME ) -lint: $( TAG ) make lint
93+ docker build -t $(LINT_IMAGE_NAME ) $(IMAGE_BUILD_ARGS ) -f Dockerfile.lint .
94+ docker run --rm $(LINT_IMAGE_NAME ) make lint
8595
8696.PHONY : lint test-e2e test-unit test cross e2e-cross coverage gradle-test shell build_dev_image tars
0 commit comments