Skip to content

Commit

Permalink
Makefile improvements (#276)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hedingber committed May 26, 2020
1 parent fd47502 commit f74e5e1
Showing 1 changed file with 56 additions and 21 deletions.
77 changes: 56 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,35 +40,36 @@ build: docker-images package-wheel ## Build all artifacts
@echo Done.


DOCKER_IMAGES_RULES = \
DEFAULT_DOCKER_IMAGES_RULES = \
api \
base \
base-legacy \
models \
models-legacy \
models-gpu \
models-gpu-legacy \
mlrun

docker-images: $(DOCKER_IMAGES_RULES) ## Build all docker images
docker-images: $(DEFAULT_DOCKER_IMAGES_RULES) ## Build all docker images
@echo Done.


push-docker-images: docker-images ## Push all docker images
@for image in $(IMAGES_TO_PUSH); do \
echo "Pushing $$image" ; \
docker push $$image ; \
done
@echo "Pushing images concurrently $(DEFAULT_IMAGES)"
@echo $(DEFAULT_IMAGES) | xargs -n 1 -P 5 docker push
@echo Done.


print-docker-images: ## Print all docker images
@for image in $(IMAGES_TO_PUSH); do \
@for image in $(DEFAULT_IMAGES); do \
echo $$image ; \
done


MLRUN_BASE_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)base:$(MLRUN_DOCKER_TAG)
MLRUN_LEGACY_BASE_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)base:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_BASE_IMAGE_NAME)

base: ## Build base and legacy-base docker images
base: ## Build base docker image
docker build \
--file dockerfiles/base/Dockerfile \
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
Expand All @@ -77,6 +78,14 @@ base: ## Build base and legacy-base docker images
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_BASE_IMAGE_NAME) .

push-base: base ## Push base docker image
docker push $(MLRUN_BASE_IMAGE_NAME)


MLRUN_LEGACY_BASE_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)base:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_LEGACY_BASE_IMAGE_NAME)

base-legacy: ## Build base legacy docker image
docker build \
--file dockerfiles/base/$(MLRUN_LEGACY_DOCKERFILE_DIR_NAME)/Dockerfile \
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_LEGACY_ML_PYTHON_VERSION) \
Expand All @@ -85,63 +94,81 @@ base: ## Build base and legacy-base docker images
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_LEGACY_BASE_IMAGE_NAME) .

IMAGES_TO_PUSH += $(MLRUN_BASE_IMAGE_NAME)
IMAGES_TO_PUSH += $(MLRUN_LEGACY_BASE_IMAGE_NAME)
push-base-legacy: base-legacy ## Push base legacy docker image
docker push $(MLRUN_LEGACY_BASE_IMAGE_NAME)


MLRUN_MODELS_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models:$(MLRUN_DOCKER_TAG)
MLRUN_LEGACY_MODELS_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_MODELS_IMAGE_NAME)

models: ## Build models and legacy-models docker images
models: ## Build models docker image
docker build \
--file dockerfiles/models/Dockerfile \
--build-arg MLRUN_PACKAGE_TAG=$(MLRUN_PACKAGE_TAG) \
--build-arg MLRUN_MLUTILS_GITHUB_TAG=$(MLRUN_MLUTILS_GITHUB_TAG) \
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_MODELS_IMAGE_NAME) .

push-models: models ## Push models docker image
docker push $(MLRUN_MODELS_IMAGE_NAME)


MLRUN_LEGACY_MODELS_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_LEGACY_MODELS_IMAGE_NAME)

models-legacy: ## Build models legacy docker image
docker build \
--file dockerfiles/models/$(MLRUN_LEGACY_DOCKERFILE_DIR_NAME)/Dockerfile \
--build-arg MLRUN_PACKAGE_TAG=$(MLRUN_PACKAGE_TAG) \
--build-arg MLRUN_MLUTILS_GITHUB_TAG=$(MLRUN_MLUTILS_GITHUB_TAG) \
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_LEGACY_MODELS_IMAGE_NAME) .

IMAGES_TO_PUSH += $(MLRUN_MODELS_IMAGE_NAME)
IMAGES_TO_PUSH += $(MLRUN_LEGACY_MODELS_IMAGE_NAME)
push-models-legacy: models-legacy ## Push models legacy docker image
docker push $(MLRUN_LEGACY_MODELS_IMAGE_NAME)


MLRUN_MODELS_GPU_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models-gpu:$(MLRUN_DOCKER_TAG)
MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models-gpu:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_MODELS_GPU_IMAGE_NAME)

models-gpu: ## Build models-gpu and legacy-models-gpu docker images
models-gpu: ## Build models-gpu docker image
docker build \
--file dockerfiles/models-gpu/Dockerfile \
--build-arg MLRUN_PACKAGE_TAG=$(MLRUN_PACKAGE_TAG) \
--build-arg MLRUN_MLUTILS_GITHUB_TAG=$(MLRUN_MLUTILS_GITHUB_TAG) \
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_MODELS_GPU_IMAGE_NAME) .

push-models-gpu: models-gpu ## Push models gpu docker image
docker push $(MLRUN_MODELS_GPU_IMAGE_NAME)


MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)models-gpu:$(MLRUN_DOCKER_TAG)$(MLRUN_LEGACY_DOCKER_TAG_SUFFIX)
DEFAULT_IMAGES += $(MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME)

models-gpu-legacy: ## Build models-gpu legacy docker image
docker build \
--file dockerfiles/models-gpu/$(MLRUN_LEGACY_DOCKERFILE_DIR_NAME)/Dockerfile \
--build-arg MLRUN_PACKAGE_TAG=$(MLRUN_PACKAGE_TAG) \
--build-arg MLRUN_MLUTILS_GITHUB_TAG=$(MLRUN_MLUTILS_GITHUB_TAG) \
--build-arg MLRUN_GITHUB_REPO=$(MLRUN_GITHUB_REPO) \
--tag $(MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME) .

IMAGES_TO_PUSH += $(MLRUN_MODELS_GPU_IMAGE_NAME)
IMAGES_TO_PUSH += $(MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME)
push-models-gpu-legacy: models-gpu-legacy ## Push models gpu legacy docker image
docker push $(MLRUN_LEGACY_MODELS_GPU_IMAGE_NAME)


MLRUN_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/mlrun:$(MLRUN_DOCKER_TAG)
DEFAULT_IMAGES += $(MLRUN_IMAGE_NAME)

mlrun: ## Build mlrun docker image
docker build \
--file ./Dockerfile \
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
--tag $(MLRUN_IMAGE_NAME) .

IMAGES_TO_PUSH += $(MLRUN_IMAGE_NAME)
push-mlrun: mlrun ## Push mlrun docker image
docker push $(MLRUN_IMAGE_NAME)


MLRUN_SERVING_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX)serving:$(MLRUN_DOCKER_TAG)
Expand All @@ -154,16 +181,21 @@ serving: ## Build serving docker image
--build-arg MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX=$(MLRUN_ML_DOCKER_IMAGE_NAME_PREFIX) \
--tag $(MLRUN_SERVING_IMAGE_NAME) .

push-serving: serving ## Push serving docker image
docker push $(MLRUN_SERVING_IMAGE_NAME)


MLRUN_API_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/mlrun-api:$(MLRUN_DOCKER_TAG)
DEFAULT_IMAGES += $(MLRUN_API_IMAGE_NAME)

api: ## Build mlrun-api docker image
docker build \
--file dockerfiles/mlrun-api/Dockerfile \
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
--tag $(MLRUN_API_IMAGE_NAME) .

IMAGES_TO_PUSH += $(MLRUN_API_IMAGE_NAME)
push-api: api ## Push api docker image
docker push $(MLRUN_API_IMAGE_NAME)


MLRUN_TEST_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/test:$(MLRUN_DOCKER_TAG)
Expand All @@ -174,6 +206,9 @@ build-test: ## Build test docker image
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
--tag $(MLRUN_TEST_IMAGE_NAME) .

push-test: build-test ## Push test docker image
docker push $(MLRUN_TEST_IMAGE_NAME)


package-wheel: clean ## Build python package wheel
python setup.py bdist_wheel
Expand Down

0 comments on commit f74e5e1

Please sign in to comment.