Allow for a custom docker executable in the make process
Closes: #21 Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
This commit is contained in:
parent
c42f9555f1
commit
1bb88f8aa8
47
Makefile
47
Makefile
|
@ -1,5 +1,6 @@
|
|||
# Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved.
|
||||
OS ?= ubuntu
|
||||
DOCKER_BIN ?= docker
|
||||
|
||||
# CUDA versions
|
||||
ifeq ($(OS), ubuntu)
|
||||
|
@ -30,59 +31,59 @@ default: latest
|
|||
|
||||
# CUDA images
|
||||
latest: devel
|
||||
docker tag -f cuda:$< cuda
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda
|
||||
|
||||
devel: $(CUDA_LATEST)
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
runtime: $(CUDA_LATEST)-runtime
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
%: %-devel $(OS)/cuda/%
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
%-devel: %-runtime $(OS)/cuda/%/devel/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/devel
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/devel
|
||||
|
||||
%-runtime: $(OS)/cuda/%/runtime/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/runtime
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/runtime
|
||||
|
||||
all-cuda: $(CUDA_VERSIONS) latest devel runtime
|
||||
|
||||
# cuDNN images
|
||||
cudnn: cudnn-devel
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
cudnn-devel: $(CUDNN_DEVEL_LATEST)
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
cudnn-runtime: $(CUDNN_RUNTIME_LATEST)
|
||||
docker tag -f cuda:$< cuda:$@
|
||||
$(DOCKER_BIN) tag -f cuda:$< cuda:$@
|
||||
|
||||
# Special rules for specific cuDNN versions
|
||||
%-cudnn2-devel: %-devel $(OS)/cuda/%/devel/cudnn2/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn2
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn2
|
||||
|
||||
%-cudnn2-runtime: %-runtime $(OS)/cuda/%/runtime/cudnn2/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn2
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn2
|
||||
|
||||
%-cudnn3-devel: %-devel $(OS)/cuda/%/devel/cudnn3/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn3
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn3
|
||||
|
||||
%-cudnn3-runtime: %-runtime $(OS)/cuda/%/runtime/cudnn3/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn3
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn3
|
||||
|
||||
%-cudnn4-devel: %-devel $(OS)/cuda/%/devel/cudnn4/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn4
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/devel/cudnn4
|
||||
|
||||
%-cudnn4-runtime: %-runtime $(OS)/cuda/%/runtime/cudnn4/Dockerfile
|
||||
docker build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn4
|
||||
$(DOCKER_BIN) build -t cuda:$@ $(OS)/cuda/$*/runtime/cudnn4
|
||||
|
||||
all-cudnn: $(CUDNN_VERSIONS) cudnn cudnn-devel cudnn-runtime
|
||||
|
||||
# caffe-nv images
|
||||
caffe: $(OS)/caffe/Dockerfile
|
||||
docker build -t caffe $(OS)/caffe
|
||||
$(DOCKER_BIN) build -t caffe $(OS)/caffe
|
||||
|
||||
push: all-cuda all-cudnn
|
||||
if [ -z "$(USERNAME)" ]; then \
|
||||
|
@ -90,9 +91,9 @@ push: all-cuda all-cudnn
|
|||
exit 1; \
|
||||
fi; \
|
||||
# Retag all images with the username as a prefix.
|
||||
docker images | awk '$$1 == "cuda" { print $$2 }' | xargs -I {} docker tag -f cuda:{} $(USERNAME)/cuda:{}
|
||||
docker push $(USERNAME)/cuda
|
||||
docker images | awk '$$1 == "$(USERNAME)/cuda" { print $$2 }' | xargs -I {} docker rmi $(USERNAME)/cuda:{}
|
||||
$(DOCKER_BIN) images | awk '$$1 == "cuda" { print $$2 }' | xargs -I {} $(DOCKER_BIN) tag -f cuda:{} $(USERNAME)/cuda:{}
|
||||
$(DOCKER_BIN) push $(USERNAME)/cuda
|
||||
$(DOCKER_BIN) images | awk '$$1 == "$(USERNAME)/cuda" { print $$2 }' | xargs -I {} $(DOCKER_BIN) rmi $(USERNAME)/cuda:{}
|
||||
|
||||
pull:
|
||||
if [ -z "$(USERNAME)" ]; then \
|
||||
|
@ -100,9 +101,9 @@ pull:
|
|||
exit 1; \
|
||||
fi; \
|
||||
# Download all images from the Docker Hub and retag them to remove the prefix.
|
||||
docker pull --all-tags $(USERNAME)/cuda
|
||||
docker images | awk '$$1 == "$(USERNAME)/cuda" { print $$2 }' | \
|
||||
xargs -I {} sh -c 'docker tag -f $(USERNAME)/cuda:{} cuda:{} ; docker rmi $(USERNAME)/cuda:{}'
|
||||
$(DOCKER_BIN) pull --all-tags $(USERNAME)/cuda
|
||||
$(DOCKER_BIN) images | awk '$$1 == "$(USERNAME)/cuda" { print $$2 }' | \
|
||||
xargs -I {} sh -c '$(DOCKER_BIN) tag -f $(USERNAME)/cuda:{} cuda:{} ; $(DOCKER_BIN) rmi $(USERNAME)/cuda:{}'
|
||||
|
||||
clean:
|
||||
docker rmi -f `docker images -q --filter "label=com.nvidia.cuda.version"`
|
||||
$(DOCKER_BIN) rmi -f `$(DOCKER_BIN) images -q --filter "label=com.nvidia.cuda.version"`
|
||||
|
|
Loading…
Reference in a new issue