| CONTAINER_TOOL ?= podman | |
| MAKEFLAGS += -j2 | |
| help: | |
| @echo "Build a instructlab container image for specified vendor " | |
| @echo | |
| @echo " - make amd" | |
| @echo " - make intel" | |
| @echo " - make nvidia" | |
| @echo " - make nvidia-quay" | |
| @echo " - make amd-quay" | |
| @echo " - make intel-quay" | |
| default: help | |
| .PHONY: all | |
| all: nvidia intel amd | |
| INSTRUCTLAB_GIT_REPO ?= https://github.com/instructlab/instructlab.git | |
| INSTRUCTLAB_GIT_BRANCH ?= main | |
| REGISTRY ?= quay.io | |
| REGISTRY_ORG ?= ai-lab | |
| IMAGE_TAG ?= latest | |
| INSTRUCTLAB_IMAGE_AMD ?= ${REGISTRY}/${REGISTRY_ORG}/instructlab-amd:${IMAGE_TAG} | |
| INSTRUCTLAB_IMAGE_INTEL ?= ${REGISTRY}/${REGISTRY_ORG}/instructlab-intel:${IMAGE_TAG} | |
| INSTRUCTLAB_IMAGE_NVIDIA ?= ${REGISTRY}/${REGISTRY_ORG}/instructlab-nvidia:${IMAGE_TAG} | |
| ./instructlab: | |
| @mkdir -p ../build | |
| git clone $(INSTRUCTLAB_GIT_REPO) instructlab 2> /dev/null || true | |
| (cd instructlab; git pull origin $(INSTRUCTLAB_GIT_BRANCH)) | |
| ../build/instructlab-nvidia/oci-layout: ./instructlab | |
| rm -rf ../build/instructlab-nvidia/ | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t oci:../build/instructlab-nvidia \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab/containers/cuda | |
| .PHONY: nvidia | |
| nvidia: ../build/instructlab-nvidia/oci-layout | |
| ../build/instructlab-amd/oci-layout: ./instructlab | |
| rm -rf ../build/instructlab-amd/ | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t oci:../build/instructlab-amd \ | |
| -f instructlab/containers/rocm/Containerfile \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab | |
| .PHONY: amd | |
| amd: ../build/instructlab-amd/oci-layout | |
| ../build/instructlab-intel/oci-layout: ./instructlab | |
| rm -rf ../build/instructlab-intel/ | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t oci:../build/instructlab-intel \ | |
| -f instructlab/containers/hpu/Containerfile \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab | |
| .PHONY: intel | |
| intel: ../build/instructlab-intel/oci-layout | |
| .PHONY: nvidia-quay | |
| nvidia-quay: instructlab | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t ${INSTRUCTLAB_IMAGE_NVIDIA} \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab/containers/cuda | |
| "${CONTAINER_TOOL}" push ${INSTRUCTLAB_IMAGE_NVIDIA} | |
| .PHONY: amd-quay | |
| amd-quay: instructlab | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t ${INSTRUCTLAB_IMAGE_AMD} \ | |
| -f instructlab/containers/rocm/Containerfile \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab | |
| "${CONTAINER_TOOL}" push ${INSTRUCTLAB_IMAGE_AMD} | |
| .PHONY: intel-quay | |
| intel-quay: instructlab | |
| "${CONTAINER_TOOL}" build \ | |
| --squash-all \ | |
| -t ${INSTRUCTLAB_IMAGE_INTEL} \ | |
| -f instructlab/containers/hpu/Containerfile \ | |
| $(VENDOR:%=--build-arg VENDOR=%) \ | |
| instructlab | |
| "${CONTAINER_TOOL}" push ${INSTRUCTLAB_IMAGE_INTEL} | |