feat: add podman support to Makefile

Auto-detects podman or docker, with override via CONTAINER_ENGINE.
Podman uses 'podman build', docker uses 'docker buildx build --load'.
This commit is contained in:
2026-02-05 17:23:18 -05:00
parent 5606a9a626
commit 70a3c3ad6d

View File

@@ -5,6 +5,10 @@ REGISTRY := git.daviestechlabs.io/daviestechlabs
TAG := latest TAG := latest
PLATFORM := linux/amd64 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 # Image names
IMAGES := ray-worker-nvidia ray-worker-rdna2 ray-worker-strixhalo ray-worker-intel 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 push-nvidia Push NVIDIA worker image"
@echo " make lint Lint Dockerfiles with hadolint" @echo " make lint Lint Dockerfiles with hadolint"
@echo " make TAG=v1.0.0 push-all Push with specific tag" @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 ""
@echo "Environment:" @echo "Environment:"
@echo " CONTAINER_ENGINE=$(CONTAINER_ENGINE)"
@echo " REGISTRY=$(REGISTRY)" @echo " REGISTRY=$(REGISTRY)"
@echo " TAG=$(TAG)" @echo " TAG=$(TAG)"
@echo " PLATFORM=$(PLATFORM)" @echo " PLATFORM=$(PLATFORM)"
@@ -39,37 +45,36 @@ lint:
hadolint dockerfiles/Dockerfile.ray-worker-intel hadolint dockerfiles/Dockerfile.ray-worker-intel
@echo "Lint passed!" @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: build-nvidia:
docker buildx build \ $(BUILD_CMD) \
--platform $(PLATFORM) \
--tag $(REGISTRY)/ray-worker-nvidia:$(TAG) \ --tag $(REGISTRY)/ray-worker-nvidia:$(TAG) \
--file dockerfiles/Dockerfile.ray-worker-nvidia \ --file dockerfiles/Dockerfile.ray-worker-nvidia \
--load \
. .
build-rdna2: build-rdna2:
docker buildx build \ $(BUILD_CMD) \
--platform $(PLATFORM) \
--tag $(REGISTRY)/ray-worker-rdna2:$(TAG) \ --tag $(REGISTRY)/ray-worker-rdna2:$(TAG) \
--file dockerfiles/Dockerfile.ray-worker-rdna2 \ --file dockerfiles/Dockerfile.ray-worker-rdna2 \
--load \
. .
build-strixhalo: build-strixhalo:
docker buildx build \ $(BUILD_CMD) \
--platform $(PLATFORM) \
--tag $(REGISTRY)/ray-worker-strixhalo:$(TAG) \ --tag $(REGISTRY)/ray-worker-strixhalo:$(TAG) \
--file dockerfiles/Dockerfile.ray-worker-strixhalo \ --file dockerfiles/Dockerfile.ray-worker-strixhalo \
--load \
. .
build-intel: build-intel:
docker buildx build \ $(BUILD_CMD) \
--platform $(PLATFORM) \
--tag $(REGISTRY)/ray-worker-intel:$(TAG) \ --tag $(REGISTRY)/ray-worker-intel:$(TAG) \
--file dockerfiles/Dockerfile.ray-worker-intel \ --file dockerfiles/Dockerfile.ray-worker-intel \
--load \
. .
build-all: build-nvidia build-rdna2 build-strixhalo build-intel 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 targets
push-nvidia: push-nvidia:
docker push $(REGISTRY)/ray-worker-nvidia:$(TAG) $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-nvidia:$(TAG)
push-rdna2: push-rdna2:
docker push $(REGISTRY)/ray-worker-rdna2:$(TAG) $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-rdna2:$(TAG)
push-strixhalo: push-strixhalo:
docker push $(REGISTRY)/ray-worker-strixhalo:$(TAG) $(CONTAINER_ENGINE) push $(REGISTRY)/ray-worker-strixhalo:$(TAG)
push-intel: 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 push-all: push-nvidia push-rdna2 push-strixhalo push-intel
@echo "All images pushed successfully" @echo "All images pushed successfully"
@@ -104,11 +109,11 @@ endif
# Login to registry # Login to registry
login: login:
docker login $(REGISTRY) $(CONTAINER_ENGINE) login $(REGISTRY)
# Clean local images # Clean local images
clean: clean:
-docker rmi $(REGISTRY)/ray-worker-nvidia:$(TAG) -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-nvidia:$(TAG)
-docker rmi $(REGISTRY)/ray-worker-rdna2:$(TAG) -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-rdna2:$(TAG)
-docker rmi $(REGISTRY)/ray-worker-strixhalo:$(TAG) -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-strixhalo:$(TAG)
-docker rmi $(REGISTRY)/ray-worker-intel:$(TAG) -$(CONTAINER_ENGINE) rmi $(REGISTRY)/ray-worker-intel:$(TAG)