[VOL-2993] Using a single Dockerfile for images with and without profiling
 Adding environment variable support to easily build profiled image

Change-Id: Ic09f71702e1e2007b321e5e76b5785bb31170420
diff --git a/Makefile b/Makefile
index 6f257c0..3ccec0f 100644
--- a/Makefile
+++ b/Makefile
@@ -77,11 +77,11 @@
 ## Docker targets
 build: docker-build ## Alias for 'docker build'
 
-docker-build: local-protos local-lib-go ## Build openolt adapter docker image
+docker-build: local-protos local-lib-go ## Build openolt adapter docker image (set BUILD_PROFILED=true to also build the profiled image)
 	docker build $(DOCKER_BUILD_ARGS) -t ${ADAPTER_IMAGENAME} -f docker/Dockerfile.openolt .
-
-docker-build-profile: local-protos local-lib-go ## Build openolt adapter docker image with profiling enabled
-	docker build $(DOCKER_BUILD_ARGS) -t ${ADAPTER_IMAGENAME}-profile -f docker/Dockerfile.openolt_profile .
+ifdef BUILD_PROFILED
+	docker build $(DOCKER_BUILD_ARGS) --build-arg EXTRA_GO_BUILD_TAGS="-tags profile" -t ${ADAPTER_IMAGENAME}-profile -f docker/Dockerfile.openolt .
+endif
 
 docker-push: ## Push the docker images to an external repository
 	docker push ${ADAPTER_IMAGENAME}
diff --git a/cmd/openolt-adapter/profile.go b/cmd/openolt-adapter/profile.go
index 1416756..f539afd 100644
--- a/cmd/openolt-adapter/profile.go
+++ b/cmd/openolt-adapter/profile.go
@@ -19,7 +19,6 @@
 package main
 
 import (
-	"fmt"
 	"net/http"
 	_ "net/http/pprof"
 )
diff --git a/docker/Dockerfile.openolt b/docker/Dockerfile.openolt
index ded4efa..e78ec06 100644
--- a/docker/Dockerfile.openolt
+++ b/docker/Dockerfile.openolt
@@ -24,6 +24,8 @@
 WORKDIR /go/src/github.com/opencord/voltha-openolt-adapter
 COPY . .
 
+ARG EXTRA_GO_BUILD_TAGS=""
+
 ARG org_label_schema_version=unknown
 ARG org_label_schema_vcs_url=unknown
 ARG org_label_schema_vcs_ref=unknown
@@ -33,7 +35,7 @@
 
 # Build openolt
 SHELL ["/bin/ash", "-o", "pipefail", "-c"]
-RUN go build -mod=vendor -o /go/bin/openolt \
+RUN go build $EXTRA_GO_BUILD_TAGS -mod=vendor -o /go/bin/openolt \
 	-ldflags \
 	"-X github.com/opencord/voltha-lib-go/v3/pkg/version.version=$org_label_schema_version \
 	 -X github.com/opencord/voltha-lib-go/v3/pkg/version.vcsRef=$org_label_schema_vcs_ref  \
diff --git a/docker/Dockerfile.openolt_profile b/docker/Dockerfile.openolt_profile
deleted file mode 100644
index e86b1ba..0000000
--- a/docker/Dockerfile.openolt_profile
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 2016 the original author or authors.
-#
-# 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.
-
-# -------------
-# Build stage
-
-FROM golang:1.13.8-alpine3.11 AS build-env
-
-# Install required packages
-RUN apk add --no-cache build-base=0.5-r1
-
-# Prepare directory structure
-WORKDIR /go/src/github.com/opencord/voltha-openolt-adapter
-COPY . .
-
-ARG org_label_schema_version=unknown
-ARG org_label_schema_vcs_url=unknown
-ARG org_label_schema_vcs_ref=unknown
-ARG org_label_schema_build_date=unknown
-ARG org_opencord_vcs_commit_date=unknown
-ARG org_opencord_vcs_dirty=unknown
-
-# Build openolt
-SHELL ["/bin/ash", "-o", "pipefail", "-c"]
-RUN go build -tags profile -mod=vendor -o /go/bin/openolt \
-	-ldflags \
-	"-X github.com/opencord/voltha-openolt-adapter/config/version.version=$org_label_schema_version \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.vcsRef=$org_label_schema_vcs_ref  \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.vcsDirty=$org_opencord_vcs_dirty \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.goVersion=$(go version 2>&1 | sed -E  's/.*go([0-9]+\.[0-9]+\.[0-9]+).*/\1/g') \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.os=$(go env GOHOSTOS) \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.arch=$(go env GOHOSTARCH) \
-	 -X github.com/opencord/voltha-openolt-adapter/config/version.buildTime=$org_label_schema_build_date" \
-	 ./cmd/openolt-adapter/
-
-# -------------
-# Image creation stage
-
-FROM alpine:3.11.3
-
-# Set the working directory
-WORKDIR /app
-
-# Copy required files
-COPY --from=build-env /go/bin/openolt /app/
-
-# Label image
-ARG org_label_schema_version=unknown
-ARG org_label_schema_vcs_url=unknown
-ARG org_label_schema_vcs_ref=unknown
-ARG org_label_schema_build_date=unknown
-ARG org_opencord_vcs_commit_date=unknown
-ARG org_opencord_vcs_dirty=unknown
-
-LABEL org.label-schema.schema-version=1.0 \
-      org.label-schema.name=voltha-openolt-adapter-go \
-      org.label-schema.version=$org_label_schema_version \
-      org.label-schema.vcs-url=$org_label_schema_vcs_url \
-      org.label-schema.vcs-ref=$org_label_schema_vcs_ref \
-      org.label-schema.build-date=$org_label_schema_build_date \
-      org.opencord.vcs-commit-date=$org_opencord_vcs_commit_date \
-      org.opencord.vcs-dirty=$org_opencord_vcs_dirty