Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit ecf93d5

Browse files
author
Vincent Demeester
authored
Merge pull request #213 from vdemeester/commit-as-image-tag
Use the git commit as image tag
2 parents e20b442 + 09747d5 commit ecf93d5

1 file changed

Lines changed: 39 additions & 29 deletions

File tree

docker.Makefile

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
include 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

515
IMAGE_BUILD_ARGS := \
616
--build-arg COMMIT=$(COMMIT) \
@@ -16,36 +26,36 @@ create_bin:
1626
@$(call mkdir,bin)
1727

1828
build_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

2131
shell: build_dev_image
22-
docker run -ti --rm $(IMAGE_NAME)-dev bash
32+
docker run -ti --rm $(DEV_IMAGE_NAME) bash
2333

2434
bin/$(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

3141
cross: 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

4252
e2e-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:
6171
test: test-unit test-e2e
6272

6373
test-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

6676
test-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

6979
COV_LABEL := com.docker.app.cov-run=$(TAG)
7080
coverage: 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

7787
gradle-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

8191
lint:
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

Comments
 (0)