Repository navigation
Expand file tree
/
Copy pathimage.mk
More file actions
56 lines (48 loc) · 1.7 KB
/
Copy pathimage.mk
File metadata and controls
56 lines (48 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
UPSTREAM_DOCKER_REGISTRY ?=
DOCKER_REGISTRY ?= localhost:5000
DOCKER_IMAGE_TAG_PATHSPECS+=:!.codecov.yml\
:!.config\
:!.github\
:!.gitignore\
:!.markdownlint.yaml\
:!.markdownlintignore\
:!.pre-commit-config.yaml\
:!.rustfmt.toml\
:!CHANGELOG.md\
:!CODE_OF_CONDUCT.md\
:!LICENSE\
:!README.md\
:!deny.toml\
:!docs\
:!examples\
:!k8s
makeFileDir := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
IMAGE_DEPS=
IMAGE_TAG=$(shell DOCKER_IMAGE_TAG_PATHSPECS='$(DOCKER_IMAGE_TAG_PATHSPECS)' $(makeFileDir)/docker_tag.sh)
IMAGE_BUILD_TARGETS=$(addprefix images/$(BUILD_MODE)/Dockerfile.,$(ARTIFACTS))
IMAGE_PULL_TARGETS=$(addprefix $(UPSTREAM_DOCKER_REGISTRY)/,$(ARTIFACTS))
_DEFAULT_BUILD_TARGETS += image
.PHONY: _image
_image:: | $(BUILD_DIR)
$(if $(IMAGE_DEPS),make $(IMAGE_DEPS),,)
.PHONY: _push_image
_push_image: | $(BUILD_DIR)
docker push $(IMAGE_NAME)
printf "$(IMAGE_NAME)" > $(BUILD_DIR)/$(PROJECT_NAME)-image
.PHONY: $(IMAGE_BUILD_TARGETS)
$(IMAGE_BUILD_TARGETS): PROJECT_NAME=$(subst images/$(BUILD_MODE)/Dockerfile.,,$@)
$(IMAGE_BUILD_TARGETS): IMAGE_NAME=$(DOCKER_REGISTRY)/$(PROJECT_NAME):$(IMAGE_TAG)
$(IMAGE_BUILD_TARGETS):
docker build $(BUILD_DIR) -f $@ -t $(IMAGE_NAME)
make _push_image PROJECT_NAME=$(PROJECT_NAME) IMAGE_NAME=$(IMAGE_NAME)
.PHONY: $(IMAGE_PULL_TARGETS)
$(IMAGE_PULL_TARGETS): PROJECT_NAME=$(subst $(UPSTREAM_DOCKER_REGISTRY)/,,$@)
$(IMAGE_PULL_TARGETS): IMAGE_NAME=$(DOCKER_REGISTRY)/$(PROJECT_NAME):$(IMAGE_TAG)
$(IMAGE_PULL_TARGETS):
docker pull $@:$(IMAGE_TAG)
docker tag $@:$(IMAGE_TAG) $(IMAGE_NAME)
make _push_image PROJECT_NAME=$(PROJECT_NAME) IMAGE_NAME=$(IMAGE_NAME)
.PHONY: image
image: _image $(IMAGE_BUILD_TARGETS)
.PHONY: fetch-images
fetch-images: $(IMAGE_PULL_TARGETS)