[AETHER-443][AETHER-453] Improve tost-onos image builder

- The workspace is built from scratch (onos and apps)
- Apps are built using local version or pulled from mvn repos
- 'tost-onos' is a minimal onos image built using 'tost' profile
- 'tost' is an onos image buit on top of 'tost-onos' with the tost apps

Change-Id: Id8ac664d16e6eaade658ba5bc41de1359aae09c5
diff --git a/Dockerfile.tost b/Dockerfile.tost
new file mode 100644
index 0000000..e191a9d
--- /dev/null
+++ b/Dockerfile.tost
@@ -0,0 +1,74 @@
+#
+# Copyright 2020-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.
+#
+
+# We start from an onos image and install the apps.
+# We need at least an onos image built with 'tost' profile
+FROM onosproject/tost-onos:2.2-latest as install
+
+ARG KARAF_VERSION
+ARG LOCAL_APPS
+
+# ENV settings
+ENV ONOS=/root/onos
+ENV KARAF_ROOT=${ONOS}/apache-karaf-$KARAF_VERSION
+ENV APPS_ROOT=${ONOS}/apps
+ENV KARAF_M2=${KARAF_ROOT}/system
+ENV DOWNLOAD_ROOT=/download
+ENV APP_INSTALL_ROOT=/expand
+
+# Copy the apps to the install stage container
+COPY $LOCAL_APPS/ ${DOWNLOAD_ROOT}/
+
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends \
+    unzip && \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR ${DOWNLOAD_ROOT}
+
+# Install the applications
+COPY app-install.sh ./app-install.sh
+RUN chmod 755 ./app-install.sh
+RUN ./app-install.sh
+
+# Create the final image coping over the installed applications from the install stage
+FROM onosproject/tost-onos:2.2-latest
+
+ARG KARAF_VERSION
+
+# The ENV settings must be replicated below as they are not shared between stages
+ENV ONOS=/root/onos
+ENV KARAF_ROOT=${ONOS}/apache-karaf-$KARAF_VERSION
+ENV KARAF_M2=${KARAF_ROOT}/system
+ENV APPS_ROOT=${ONOS}/apps
+
+COPY --from=install ${KARAF_M2}/ ${KARAF_M2}/
+COPY --from=install ${APPS_ROOT}/ ${APPS_ROOT}/
+
+# 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_onosproject_vcs_commit_date=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=tost \
+      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.onosproject.vcs-commit-date=$org_onosproject_vcs_commit_date