diff --git a/Makefile b/Makefile index 01cf715..da4b470 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,10 @@ REGISTRY := git.daviestechlabs.io/daviestechlabs TAG := latest PLATFORM := linux/amd64 +# Container runtime: auto-detect podman or docker +# Override with: make CONTAINER_ENGINE=podman +CONTAINER_ENGINE := $(shell command -v podman >/dev/null 2>&1 && echo podman || echo docker) + # Image names IMAGES := ray-worker-nvidia ray-worker-rdna2 ray-worker-strixhalo ray-worker-intel @@ -23,8 +27,10 @@ help: @echo " make push-nvidia Push NVIDIA worker image" @echo " make lint Lint Dockerfiles with hadolint" @echo " make TAG=v1.0.0 push-all Push with specific tag" + @echo " make CONTAINER_ENGINE=podman build-all Use podman instead of docker" @echo "" @echo "Environment:" + @echo " CONTAINER_ENGINE=$(CONTAINER_ENGINE)" @echo " REGISTRY=$(REGISTRY)" @echo " TAG=$(TAG)" @echo " PLATFORM=$(PLATFORM)" @@ -39,37 +45,36 @@ lint: hadolint dockerfiles/Dockerfile.ray-worker-intel @echo "Lint passed!" -# Build targets using buildx for cache support +# Build targets - works with both docker buildx and podman build +# Podman uses 'build' directly, docker uses 'buildx build' +ifeq ($(CONTAINER_ENGINE),podman) + BUILD_CMD = $(CONTAINER_ENGINE) build --platform $(PLATFORM) +else + BUILD_CMD = $(CONTAINER_ENGINE) buildx build --platform $(PLATFORM) --load +endif + build-nvidia: - docker buildx build \ - --platform $(PLATFORM) \ + $(BUILD_CMD) \ --tag $(REGISTRY)/ray-worker-nvidia:$(TAG) \ --file dockerfiles/Dockerfile.ray-worker-nvidia \ - --load \ . build-rdna2: - docker buildx build \ - --platform $(PLATFORM) \ + $(BUILD_CMD) \ --tag $(REGISTRY)/ray-worker-rdna2:$(TAG) \ --file dockerfiles/Dockerfile.ray-worker-rdna2 \ - --load \ . build-strixhalo: - docker buildx build \ - --platform $(PLATFORM) \ + $(BUILD_CMD) \ --tag $(REGISTRY)/ray-worker-strixhalo:$(TAG) \ --file dockerfiles/Dockerfile.ray-worker-strixhalo \ - --load \ . build-intel: - docker buildx build \ - --platform $(PLATFORM) \ + $(BUILD_CMD) \ --tag $(REGISTRY)/ray-worker-intel:$(TAG) \ --file dockerfiles/Dockerfile.ray-worker-intel \ - --load \ . build-all: build-nvidia build-rdna2 build-strixhalo build-intel @@ -77,16 +82,16 @@ build-all: build-nvidia build-rdna2 build-strixhalo build-intel # Push targets push-nvidia: - docker push $(REGISTRY)/ray-worker-nvidia:$(TAG) + $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-nvidia:$(TAG) push-rdna2: - docker push $(REGISTRY)/ray-worker-rdna2:$(TAG) + $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-rdna2:$(TAG) push-strixhalo: - docker push $(REGISTRY)/ray-worker-strixhalo:$(TAG) + $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-strixhalo:$(TAG) push-intel: - docker push $(REGISTRY)/ray-worker-intel:$(TAG) + $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-intel:$(TAG) push-all: push-nvidia push-rdna2 push-strixhalo push-intel @echo "All images pushed successfully" @@ -104,11 +109,11 @@ endif # Login to registry login: - docker login $(REGISTRY) + $(CONTAINER_ENGINE) login $(REGISTRY) # Clean local images clean: - -docker rmi $(REGISTRY)/ray-worker-nvidia:$(TAG) - -docker rmi $(REGISTRY)/ray-worker-rdna2:$(TAG) - -docker rmi $(REGISTRY)/ray-worker-strixhalo:$(TAG) - -docker rmi $(REGISTRY)/ray-worker-intel:$(TAG) + -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-nvidia:$(TAG) + -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-rdna2:$(TAG) + -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-strixhalo:$(TAG) + -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-intel:$(TAG)