IMG = gcr.io/kubeflow-images-public/kubeflow-codelab-notebook # List any changed files. We only include files in the notebooks directory. # because that is the code in the docker image. # In particular we exclude changes to the ksonnet configs. CHANGED_FILES := $(shell git diff-files --relative=codelab-image) ifeq ($(strip $(CHANGED_FILES)),) # Changed files is empty; not dirty # Don't include --dirty because it could be dirty if files outside the ones we care # about changed. GIT_VERSION := $(shell git describe --always) else GIT_VERSION := $(shell git describe --always)-dirty-$(shell git diff | shasum -a256 | cut -c -6) endif TAG := $(shell date +v%Y%m%d)-$(GIT_VERSION) all: build # To build without the cache set the environment variable # export DOCKER_BUILD_OPTS=--no-cache build: docker build ${DOCKER_BUILD_OPTS} -t $(IMG):$(TAG) . \ --label=git-verions=$(GIT_VERSION) docker tag $(IMG):$(TAG) $(IMG):latest @echo Built $(IMG):latest @echo Built $(IMG):$(TAG) # Build but don't attach the latest tag. This allows manual testing/inspection of the image # first. push: build gcloud docker -- push $(IMG):$(TAG) @echo Pushed $(IMG) with :$(TAG) tags push-latest: push gcloud container images add-tag --quiet $(IMG):$(TAG) $(IMG):latest --verbosity=info echo created $(IMG):latest