1
+ IMAGE_NAME := lora-syncer
2
+ IMAGE_REGISTRY ?= us-central1-docker.pkg.dev/k8s-staging-images/llm-instance-gateway
3
+ IMAGE_REPO ?= $(IMAGE_REGISTRY ) /$(IMAGE_NAME )
4
+
5
+ GIT_TAG ?= $(shell git describe --tags --dirty --always)
6
+ EXTRA_TAG ?= $(if $(_PULL_BASE_REF ) ,$(_PULL_BASE_REF ) ,main)
7
+ IMAGE_TAG ?= $(IMAGE_REPO ) :$(GIT_TAG )
8
+ EXTRA_IMAGE_TAG ?= $(IMAGE_REPO ) :$(EXTRA_TAG )
9
+
10
+
11
+ PLATFORMS ?= linux/amd64
12
+
13
+
14
+ DOCKER_BUILDX_CMD ?= docker buildx
15
+ IMAGE_BUILD_CMD ?= $(DOCKER_BUILDX_CMD ) build
16
+ IMAGE_BUILD_EXTRA_OPTS ?=
17
+
18
+ # --- Targets ---
19
+ .PHONY : image-local-build
20
+ image-local-build :
21
+ BUILDER=$(shell $(DOCKER_BUILDX_CMD ) create --use)
22
+ $(MAKE ) image-build PUSH=$(PUSH )
23
+ $(DOCKER_BUILDX_CMD ) rm $$ BUILDER
24
+
25
+ .PHONY : image-local-push
26
+ image-local-push : PUSH=--push
27
+ image-local-push : image-local-build
28
+
29
+ .PHONY : image-build
30
+ image-build :
31
+ $(IMAGE_BUILD_CMD ) -t $(IMAGE_TAG ) \
32
+ --platform=$(PLATFORMS ) \
33
+ --build-arg BASE_IMAGE=$(BASE_IMAGE ) \
34
+ --build-arg BUILDER_IMAGE=$(BUILDER_IMAGE ) \
35
+ $(PUSH ) \
36
+ $(IMAGE_BUILD_EXTRA_OPTS ) ./
37
+
38
+ .PHONY : image-push
39
+ image-push : PUSH=--push
40
+ image-push : image-build
41
+
42
+ .PHONY : run
43
+ run :
44
+ docker run -v $(CURDIR ) /config:/config -u appuser $(IMAGE_TAG ) # Use the user name
45
+
46
+ .PHONY : clean
47
+ clean :
48
+ docker rmi $(IMAGE_TAG ) $(EXTRA_IMAGE_TAG ) 2> /dev/null || true
49
+
50
+ .PHONY : clean-dangling
51
+ clean-dangling :
52
+ docker rmi $(docker images -f "dangling=true" -q ) 2> /dev/null || true
53
+
54
+ .PHONY : test
55
+ test :
56
+ python -m unittest discover
57
+
58
+ .PHONY : all
59
+ all : test image-build
0 commit comments