Lerobot/Makefile

109 lines
3.9 KiB
Makefile

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) | grep -v $(REMOTE_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"