| DOCKER_REGISTRY  = docker.io | 
 | DOCKER_ORG       = $(shell docker info 2>/dev/null | sed '/Username:/!d;s/.* //') | 
 | DOCKER_IMAGE     = pytorch | 
 | DOCKER_FULL_NAME = $(DOCKER_REGISTRY)/$(DOCKER_ORG)/$(DOCKER_IMAGE) | 
 |  | 
 | ifeq ("$(DOCKER_ORG)","") | 
 | $(warning WARNING: No docker user found using results from whoami) | 
 | DOCKER_ORG       = $(shell whoami) | 
 | endif | 
 |  | 
 | BASE_RUNTIME     = ubuntu:18.04 | 
 | BASE_DEVEL       = nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | 
 |  | 
 | # The conda channel to use to install pytorch / torchvision | 
 | INSTALL_CHANNEL  = pytorch | 
 |  | 
 | PYTHON_VERSION   = 3.7 | 
 | # Can be either official / dev | 
 | BUILD_TYPE       = dev | 
 | BUILD_PROGRESS   = auto | 
 | BUILD_ARGS       = --build-arg BASE_IMAGE=$(BASE_IMAGE) --build-arg PYTHON_VERSION=$(PYTHON_VERSION) --build-arg INSTALL_CHANNEL=$(INSTALL_CHANNEL) | 
 | DOCKER_BUILD     = DOCKER_BUILDKIT=1 docker build --progress=$(BUILD_PROGRESS) --target $(BUILD_TYPE) -t $(DOCKER_FULL_NAME):$(DOCKER_TAG) $(BUILD_ARGS) . | 
 | DOCKER_PUSH      = docker push $(DOCKER_FULL_NAME):$(DOCKER_TAG) | 
 |  | 
 | .PHONY: all | 
 | all: devel-image | 
 |  | 
 | .PHONY: devel-image | 
 | devel-image: BASE_IMAGE := $(BASE_DEVEL) | 
 | devel-image: DOCKER_TAG := $(shell git describe --tags)-devel | 
 | devel-image: | 
 | 	$(DOCKER_BUILD) | 
 |  | 
 | .PHONY: devel-image | 
 | devel-push: BASE_IMAGE := $(BASE_DEVEL) | 
 | devel-push: DOCKER_TAG := $(shell git describe --tags)-devel | 
 | devel-push: | 
 | 	$(DOCKER_PUSH) | 
 |  | 
 | .PHONY: runtime-image | 
 | runtime-image: BASE_IMAGE := $(BASE_RUNTIME) | 
 | runtime-image: DOCKER_TAG := $(shell git describe --tags)-runtime | 
 | runtime-image: | 
 | 	$(DOCKER_BUILD) | 
 | 	docker tag $(DOCKER_FULL_NAME):$(DOCKER_TAG) $(DOCKER_FULL_NAME):latest | 
 |  | 
 | .PHONY: runtime-image | 
 | runtime-push: BASE_IMAGE := $(BASE_RUNTIME) | 
 | runtime-push: DOCKER_TAG := $(shell git describe --tags)-runtime | 
 | runtime-push: | 
 | 	$(DOCKER_PUSH) | 
 |  | 
 | .PHONY: clean | 
 | clean: | 
 | 	-docker rmi -f $(shell docker images -q $(DOCKER_FULL_NAME)) |