VERSION := 20251229-release REMOTE_VERSION := v1.1.0 PROXY := http://192.168.16.68:18000 REMOTE_REPO := ccr-29eug8s3-pub.cnc.bj.baidubce.com/public CUDA_DEVICES := 0 # Default target .PHONY: all all: help .PHONY: build build: build-merge build-train build-infer build-visualize .PHONY: publish push: build push-merge push-train push-infer push-visualize clean .PHONY: merge train infer visualize merge: build-merge run-merge train: build-train run-train infer: build-infer run-infer visualize: build-visualize run-visualize # --- Merge Image --- .PHONY: build-merge run-merge push-merge build-merge: docker build -t dcloud/lerobot-merge:$(VERSION) -f docker/Dockerfile.merge . --build-arg https_proxy=$(PROXY) run-merge: docker run -it --rm \ -v $(CURDIR)/datasets:/workspace/embolab/inputs \ -v $(CURDIR)/docker/inputs:/workspace/embolab/outputs \ -v $(CURDIR)/docker/merge_task.json:/workspace/embolab/params/build_task.json \ -e HF_HUB_OFFLINE=1 -e HF_DATASET_OFFLINE=1 \ --shm-size=120G \ dcloud/lerobot-merge:$(VERSION) push-merge: docker tag dcloud/lerobot-merge:$(VERSION) $(REMOTE_REPO)/lerobot-merge:$(REMOTE_VERSION) docker push $(REMOTE_REPO)/lerobot-merge:$(REMOTE_VERSION) # --- Training Image --- .PHONY: build-train run-train push-train build-train: docker build -t dcloud/lerobot-train:$(VERSION) -f docker/Dockerfile.train . --build-arg https_proxy=$(PROXY) run-train: docker run -it --rm --gpus '"device=$(CUDA_DEVICES)"' \ -v $(CURDIR)/docker/inputs:/workspace/embolab/inputs \ -v $(CURDIR)/docker/outputs:/workspace/embolab/outputs/ \ -v $(CURDIR)/docker/train_task.json:/workspace/embolab/params/build_task.json \ -e HF_HUB_OFFLINE=1 -e HF_DATASET_OFFLINE=1 \ --shm-size=120G \ dcloud/lerobot-train:$(VERSION) push-train: docker tag dcloud/lerobot-train:$(VERSION) $(REMOTE_REPO)/lerobot-train:$(REMOTE_VERSION) docker push $(REMOTE_REPO)/lerobot-train:$(REMOTE_VERSION) # --- Online Inference Image --- .PHONY: build-infer run-infer push-infer build-infer: docker build -t dcloud/lerobot-infer:$(VERSION) -f docker/Dockerfile.infer . --build-arg https_proxy=$(PROXY) run-infer: docker run -it --rm --gpus '"device=$(CUDA_DEVICES)"' \ -v $(CURDIR)/docker/outputs:/workspace/embolab/outputs \ -v $(CURDIR)/docker/infer_task.json:/workspace/embolab/params/build_task.json \ -e HF_HUB_OFFLINE=1 -e HF_DATASET_OFFLINE=1 \ --shm-size=128G \ dcloud/lerobot-infer:$(VERSION) push-infer: docker tag dcloud/lerobot-infer:$(VERSION) $(REMOTE_REPO)/lerobot-infer:$(REMOTE_VERSION) docker push $(REMOTE_REPO)/lerobot-infer:$(REMOTE_VERSION) # --- Visualize Image --- .PHONY: build-visualize run-visualize push-visualize build-visualize: docker build -t dcloud/lerobot-visualize:$(VERSION) -f docker/Dockerfile.visualize . --build-arg https_proxy=$(PROXY) run-visualize: docker run -it --rm \ -v $(CURDIR)/datasets:/workspace/embolab/datasets \ -e HF_HUB_OFFLINE=1 -e HF_DATASET_OFFLINE=1 \ -p 29876:9876 \ --shm-size=120G \ dcloud/lerobot-visualize:$(VERSION) push-visualize: docker tag dcloud/lerobot-visualize:$(VERSION) $(REMOTE_REPO)/lerobot-visualize:$(REMOTE_VERSION) docker push $(REMOTE_REPO)/lerobot-visualize:$(REMOTE_VERSION) # --- Cleanup --- .PHONY: clean clean: -docker images -f "dangling=true" -q | xargs -r docker rmi -docker images | grep lerobot | grep -v $(VERSION) | awk '{print $$1":"$$2}' | xargs -r docker rmi # --- Help --- .PHONY: help help: @echo "Available commands:" @echo " make build Build all Docker images" @echo " make push Push all Docker images to remote repository" @echo " make merge Build and run the merge image" @echo " make train Build and run the training image" @echo " make infer Build and run the inference image" @echo " make visualize Build and run the visualization image" @echo " make clean Clean up dangling Docker images"