diff --git a/Makefile b/Makefile
index 3435fb0..04e352b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,38 +1,56 @@
-ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+# Copyright 2019-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
-IMAGE_NAME        ?= opencord/mavenrepo
-DOCKER_REGISTRY   ?= docker-registry:5000
-DEPLOY_DOCKER_TAG ?= candidate
+# Configure shell
+SHELL = bash -e -o pipefail
 
-MAKE_CONFIG       ?= config.mk
-ifeq ($(realpath $(MAKE_CONFIG)),)
-$(info Makefile configuration not found, defaults will be used.)
-else
-$(info Using makefile configuration "$(MAKE_CONFIG)")
-include $(MAKE_CONFIG)
-endif
+ROOT_DIR                 := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+
+VERSION                  ?= $(shell cat ./VERSION)
+
+DOCKER_REGISTRY          ?=
+DOCKER_REPOSITORY        ?=
+DOCKER_BUILD_ARGS        ?=
+DOCKER_TAG               ?= ${VERSION}
+DOCKER_IMAGENAME         := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}mavenrepo:${DOCKER_TAG}
+
+## Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL     ?= $(shell git remote get-url $(shell git remote))
+DOCKER_LABEL_VCS_REF     ?= $(shell git diff-index --quiet HEAD -- && git rev-parse HEAD || echo "unknown")
+DOCKER_LABEL_COMMIT_DATE ?= $(shell git diff-index --quiet HEAD -- && git show -s --format=%cd --date=iso-strict HEAD || echo "unknown" )
+DOCKER_LABEL_BUILD_DATE  ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
 
 .PHONY: all
-all: build
+all: docker-build
 
-.PHONY: build
-build:
-	docker build -f Dockerfile.make -t $(IMAGE_NAME):$(DEPLOY_DOCKER_TAG) $(ROOT_DIR)
+docker-build:
+	docker build $(DOCKER_BUILD_ARGS) \
+    -t ${DOCKER_IMAGENAME} \
+    --build-arg org_label_schema_version="${VERSION}" \
+    --build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
+    --build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
+    --build-arg org_label_schema_build_date="${DOCKER_LABEL_BUILD_DATE}" \
+    --build-arg org_opencord_vcs_commit_date="${DOCKER_LABEL_COMMIT_DATE}" \
+    -f Dockerfile.make ${ROOT_DIR}
+
+docker-push:
+	docker push ${DOCKER_IMAGENAME}
 
 .PHONY: onos
 onos:
 	docker build -t cord/onos:latest -f docker/Dockerfile.onos .
 
-.PHONY: publish
-publish:
-	docker tag $(IMAGE_NAME):$(DEPLOY_DOCKER_TAG) $(DOCKER_REGISTRY)/$(IMAGE_NAME):$(DEPLOY_DOCKER_TAG)
-	docker push $(DOCKER_REGISTRY)/$(IMAGE_NAME):$(DEPLOY_DOCKER_TAG)
-
-.PHONY: clean
-clean:
-	docker rmi $(IMAGE_NAME):$(DEPLOY_DOCKER_TAG) | true
-	docker rmi $(DOCKER_REGISTRY)/$(IMAGE_NAME):$(DEPLOY_DOCKER_TAG) | true
-
 .PHONY: test
 test:
 	@echo "No unit tests at present"
