summaryrefslogtreecommitdiff
path: root/make/container.mk
blob: 84a6483e3b9ad26d48d1c54640ad35755581964d (plain)
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
CPU_ARCH := $(if $(shell which arch 2>/dev/null),\
	$(shell arch),\
	$(shell lscpu | grep ^Architecture: | sed "s/^Architecture:[[:space:]]*\([[:alnum:][:punct:]]\+\).*/\1/"))
IMAGE_PREFIX := $(if $(filter armv7%,$(CPU_ARCH)),armv7/)
REGISTRY_DOMAIN := git.joeac.net
REGISTRY_USER := joeac

container_image_name = $(REGISTRY_DOMAIN)/$(REGISTRY_USER)/$(CONTAINER_PREFIX)joeac.net-$(module)
is_containerised = $(filter $(COMPOSE_SERVICES),$(module))

define build_module_rule =
.PHONY: build_$(module)
build_$(module): $(if $(is_containerised),make_$(module) $(module).Dockerfile)
	$(if $(is_containerised),\
		IMAGE_PREFIX="$(IMAGE_PREFIX)" podman-compose build $(module))
endef

define push_module_rule =
.PHONY: push_$(module)
push_$(module): $(if $(is_containerised),login_registry build_$(module))
	$(if $(is_containerised),\
		podman push $(container_image_name))
endef

$(foreach module,$(MODULES),$(eval $(call build_module_rule)))
$(foreach module,$(MODULES),$(eval $(call push_module_rule)))

.PHONY: login_registry
login_registry:
	podman login $(REGISTRY_DOMAIN)