File size: 1,499 Bytes
c33a7ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
57
58
CONTAINER_TOOL ?= podman
REGISTRY ?= quay.io
REGISTRY_ORG ?= ai-lab
COMPONENT ?= model_servers
CHAT_FORMAT ?=

BIND_MOUNT_OPTIONS := ro
OS := $(shell uname -s)
ifeq ($(OS),Linux)
    BIND_MOUNT_OPTIONS := Z,ro
endif

.PHONY: build
build:
	podman build --squash-all --build-arg PORT=$(PORT) -t $(IMAGE) . -f base/Containerfile

.PHONY: install
install:
	pip install -r tests/requirements.txt

.PHONY: test
test:
	@if [ ! -f "../../models/$(MODEL_NAME)" ]; then \
		echo "Model file -- $(MODEL_NAME) -- not present in the models directory."; \
		exit 1; \
	else \
        if [ ! -f "./$(MODEL_NAME)" ]; then \
            ln -s ../../models/$(MODEL_NAME) ./$(MODEL_NAME); \
        fi; \
		REGISTRY=$(REGISTRY) IMAGE_NAME=$(IMAGE_NAME) MODEL_NAME=$(MODEL_NAME) MODEL_PATH=$(MODEL_PATH) PORT=$(PORT) pytest -vvv -s ; \
	fi;

.PHONY: clean
clean:
	- rm ./$(MODEL_NAME) &> /dev/null

.PHONY: run
run:
	cd ../../models && \
	podman run -it \
		-d \
		-p $(PORT):$(PORT) \
		-v ./$(MODEL_NAME):$(MODELS_PATH)/$(MODEL_NAME):$(BIND_MOUNT_OPTIONS) \
		-e MODEL_PATH=$(MODELS_PATH)/$(MODEL_NAME) \
		-e HOST=0.0.0.0 \
		-e PORT=$(PORT) \
		$(CHAT_FORMAT:%=-e CHAT_FORMAT=${CHAT_FORMAT}) \
		$(IMAGE)

.PHONY: podman-clean
podman-clean:
	@container_ids=$$(podman ps --format "{{.ID}} {{.Image}}" | awk '$$2 == "$(IMAGE)" {print $$1}'); \
	echo "removing all containers with IMAGE=$(IMAGE)"; \
    for id in $$container_ids; do \
        echo "Removing container: $$id,"; \
        podman rm -f $$id; \
    done