diff --git a/Dockerfile.voltha-onos b/Dockerfile.voltha-onos
new file mode 100644
index 0000000..d0017bd
--- /dev/null
+++ b/Dockerfile.voltha-onos
@@ -0,0 +1,89 @@
+# Copyright 2018 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.
+
+
+# Download and copy the specified onos apps
+FROM maven:3-jdk-8-alpine as download
+
+# The ENV settings must be replicated below as they are not shared between stages
+ENV DOWNLOAD_ROOT=/download
+RUN mkdir -p ${DOWNLOAD_ROOT}
+WORKDIR ${DOWNLOAD_ROOT}
+COPY mvn_settings.* ${DOWNLOAD_ROOT}/
+RUN ./mvn_settings.sh
+ADD dependencies.xml .
+
+ARG LOCAL_ONOSAPPS
+COPY local_imports/ /local_imports/
+RUN if [ -n "$LOCAL_ONOSAPPS" ] ; then \
+    cp /local_imports/oar/* ${DOWNLOAD_ROOT}/ ; \
+else \
+    mvn dependency:copy -Dmdep.useBaseVersion=true -DoutputDirectory=${DOWNLOAD_ROOT} -Dsilent=true -f dependencies.xml -s mvn_settings.xml ; \
+fi
+
+
+# Unpack and install specific apps from download stage
+FROM onosproject/onos:1.13.5 as install
+
+# The ENV settings must be replicated below as they are not shared between stages
+ENV ONOS=/root/onos
+ENV KARAF_VERSION=3.0.8
+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 downloaded artifact to the install stage container
+COPY --from=download ${DOWNLOAD_ROOT} ${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/onos:1.13.5
+
+# The ENV settings must be replicated below as they are not shared between stages
+ENV ONOS=/root/onos
+ENV KARAF_VERSION=3.0.8
+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}/
+RUN echo "${KARAF_M2} ${APPS_ROOT}"
+COPY --from=install ${APPS_ROOT}/ ${APPS_ROOT}/
+COPY network-cfg.json $KARAF_ROOT/../config/network-cfg.json
+
+RUN touch $ONOS/apps/org.onosproject.hostprovider/active
+RUN touch $ONOS/apps/org.onosproject.openflow-base/active
+
+# Label image
+ARG org_label_schema_name=unknown
+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
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=$org_label_schema_name \
+      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
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d9b70fb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,77 @@
+#
+# 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.
+#
+
+# set default shell
+SHELL = bash -e -o pipefail
+
+# Variables
+VERSION                  ?= $(shell cat ./VERSION)
+
+## Docker related
+DOCKER_REGISTRY          ?=
+DOCKER_REPOSITORY        ?=
+DOCKER_BUILD_ARGS        ?=
+DOCKER_TAG               ?= ${VERSION}
+ONOS_IMAGENAME           := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-onos:${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: docker-build
+
+# This should to be the first and default target in this Makefile
+help:
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@echo "build             : Build the onos docker image with olt apps built-in"
+	@echo "help              : Print this help"
+	@echo "docker-push       : Push the docker images to an external repository"
+	@echo "clean             : Delete any locally copied oar files in local_imports"
+	@echo
+
+
+## Docker targets
+
+build: docker-build
+
+local-onosapps:
+	mkdir -p local_imports/oar
+ifdef LOCAL_ONOSAPPS
+	./get-local-oars.sh
+endif
+
+docker-build: local-onosapps
+	docker build $(DOCKER_BUILD_ARGS) \
+    -t ${ONOS_IMAGENAME} \
+    --build-arg LOCAL_ONOSAPPS=$(LOCAL_ONOSAPPS) \
+    --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.voltha-onos .
+
+docker-push:
+	docker push ${ONOS_IMAGENAME}
+
+clean:
+	rm -rf local_imports
+
+# end file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..98d421d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+# VOLTHA ONOS Development Build Environment
+
+Docker build environment capable of producing a version of onos and needed apps that can run with voltha.  Typically the onos restful api would be used to include apps after onos is started.  This provides a build environment that includes current released and enabled oar files or optionally can import locally built oar files.
+
+
+## Build
+
+By default the current set of onos apps is imported from a maven repository as read from `dependencies.xml`.  
+```sh
+make build
+```
+
+
+## Including locally built oar files
+
+If you wish to include your own onos apps then export the `LOCAL_ONOSAPPS` environment variable to have locally built oar files copied from `local_imports/oar` into the docker build environment rather than pulling from maven.  Any oar files in this directory will be included and set to start on onos startup.  
+
+Note!  its assumed that the standard apps (olt-app, sadis, aaa, and dhcpl2relay) build environment is one up directory from this build environment.  Modify `get-local-oars.sh` if this is not the case:
+
+```sh
+export LOCAL_ONOSAPPS=true
+make build
+```
+
+## Including custom config
+
+The voltha-onos build also includes a mechanism to build in a default onos `network-config.json` file.   You can simply edit `network-cfg.json` before building the docker image.  Or if using docker-compose or k8s volume mount over the built in file within the container `/root/onos/config/network-cfg.json` with your own.
+
+For example, in a docker-compose file:
+
+```sh
+  onos:
+    image: "${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-onos:${DOCKER_TAG}"
+    ports:
+    - "8101:8101" # ssh
+    - "6653:6653" # OF
+    - "8181:8181" # UI
+    environment:
+      ONOS_APPS: 'drivers,openflow-base'
+    volumes:
+    - "/var/run/docker.sock:/tmp/docker.sock"
+    - "./network-cfg.json:/root/onos/config/network-cfg.json"
+    networks:
+    - default
+    restart: unless-stopped
+```
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..d72f262
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2.0.0-dev
diff --git a/app-install.sh b/app-install.sh
new file mode 100755
index 0000000..5ca794e
--- /dev/null
+++ b/app-install.sh
@@ -0,0 +1,34 @@
+#!/bin/bash 
+# Copyright 2017-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.
+
+HERE=$(pwd)
+OARS=$(find $DOWNLOAD_ROOT -name "*.oar")
+for oar in $OARS; do
+    cd $HERE
+    echo "Installing application '$oar'"
+    rm -rf $APP_INSTALL_ROOT
+    mkdir -p $APP_INSTALL_ROOT
+    cd $APP_INSTALL_ROOT
+    cp $oar $APP_INSTALL_ROOT
+    unzip -oq -d . $APP_INSTALL_ROOT/$(basename $oar)
+    name=$(grep "name=" $APP_INSTALL_ROOT/app.xml | sed 's/<app name="//g;s/".*//g')
+    mkdir -p $APPS_ROOT/$name
+    cp $APP_INSTALL_ROOT/app.xml $APPS_ROOT/$name/app.xml
+    touch $APPS_ROOT/$name/active
+    [ -f $APP_INSTALL_ROOT/app.png ] && cp $APP_INSTALL_ROOT/app.png $APPS_ROOT/$name/app.png
+    cp $APP_INSTALL_ROOT/$(basename $oar) $APPS_ROOT/$name/$name.oar
+    cp -rf $APP_INSTALL_ROOT/m2/* $KARAF_M2
+    rm -rf $APP_INSTALL_ROOT
+done
diff --git a/dependencies.xml b/dependencies.xml
new file mode 100644
index 0000000..2d5a52c
--- /dev/null
+++ b/dependencies.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2017-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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+         <modelVersion>4.0.0</modelVersion>
+
+    <groupId>fake</groupId>
+    <artifactId>fake</artifactId>
+    <version>fake</version>
+
+    <properties>
+        <olt.version>2.1.0</olt.version>
+        <sadis.version>2.2.0</sadis.version>
+        <aaa.version>1.8.0</aaa.version>
+        <dhcpl2relay.version>1.5.0</dhcpl2relay.version>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>3.0.1</version>
+                <configuration>
+                    <artifactItems>
+                        <artifactItem>
+                            <groupId>org.opencord</groupId>
+                            <artifactId>olt-app</artifactId>
+                            <version>${olt.version}</version>
+                            <type>oar</type>
+                            <overWrite>true</overWrite>
+                        </artifactItem>
+                        <artifactItem>
+                            <groupId>org.opencord</groupId>
+                            <artifactId>sadis-app</artifactId>
+                            <version>${sadis.version}</version>
+                            <type>oar</type>
+                            <overWrite>true</overWrite>
+                        </artifactItem>
+                        <artifactItem>
+                            <groupId>org.opencord</groupId>
+                            <artifactId>aaa</artifactId>
+                            <version>${aaa.version}</version>
+                            <type>oar</type>
+                            <overWrite>true</overWrite>
+                        </artifactItem>
+                        <artifactItem>
+                            <groupId>org.opencord</groupId>
+                            <artifactId>dhcpl2relay</artifactId>
+                            <version>${dhcpl2relay.version}</version>
+                            <type>oar</type>
+                            <overWrite>true</overWrite>
+                        </artifactItem>
+                    </artifactItems>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>central</id>
+            <name>Central Repository</name>
+            <url>http://repo.maven.apache.org/maven2</url>
+            <layout>default</layout>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>always</updatePolicy>
+                <checksumPolicy>fail</checksumPolicy>
+            </releases>
+        </repository>
+
+        <repository>
+            <id>snapshots</id>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>always</updatePolicy>
+                <checksumPolicy>fail</checksumPolicy>
+            </snapshots>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/get-local-oars.sh b/get-local-oars.sh
new file mode 100755
index 0000000..f74cb2c
--- /dev/null
+++ b/get-local-oars.sh
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+
+set -x
+
+mkdir -p local_imports/oar
+cp ../olt/app/target/*.oar local_imports/oar/
+cp ../sadis/app/target/*.oar local_imports/oar/
+cp ../aaa/target/*.oar local_imports/oar/
+cp ../dhcpl2relay/target/*.oar local_imports/oar/
+
diff --git a/mvn_settings.sh b/mvn_settings.sh
new file mode 100755
index 0000000..7f66f25
--- /dev/null
+++ b/mvn_settings.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# Copyright 2017-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.
+if [ -f mvn_settings.custom.xml ] ; then
+  cp mvn_settings.custom.xml mvn_settings.xml
+  exit 0
+fi
+
+if [ "$http_proxy$https_proxy" != "" ] ; then
+  echo "  <proxies>" >> mvn_settings.proxy.xml
+  for PROTOCOL in http https ; do
+    proxy="${PROTOCOL}_proxy"
+    proxy="${!proxy}"
+    if [ "$proxy" = "" ] ; then continue ; fi
+
+    # username/password not yet included
+    PROXY_HOST=$(echo "$proxy" | sed "s@.*://@@;s/.*@//;s@:.*@@")
+    PROXY_PORT=$(echo "$proxy" | sed "s@.*://@@;s@.*:@@;s@/.*@@")
+    NON_PROXY=$(echo "$no_proxy" | sed "s@,@|@g")
+
+    echo "   <proxy>
+      <id>$PROTOCOL</id>
+      <active>true</active>
+      <protocol>$PROTOCOL</protocol>
+      <host>$PROXY_HOST</host>
+      <port>$PROXY_PORT</port>
+      <nonProxyHosts>$NON_PROXY</nonProxyHosts>
+    </proxy>" >> mvn_settings.proxy.xml
+  done
+  echo "  </proxies>" >> mvn_settings.proxy.xml
+
+  sed -i '/<!--PROXY-->/r mvn_settings.proxy.xml' mvn_settings.xml
+fi
+
+if [ -f mvn_settings.extra.xml ] ; then
+  sed -i 's/<!--EXTRA-->/r mvn_settings.extra.xml' mvn_settings.xml
+fi
diff --git a/mvn_settings.xml b/mvn_settings.xml
new file mode 100644
index 0000000..26f9926
--- /dev/null
+++ b/mvn_settings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you 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.
+-->
+
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+  <!--PROXY-->
+  <!--EXTRA-->
+</settings>
diff --git a/network-cfg.json b/network-cfg.json
new file mode 100644
index 0000000..1ccd56b
--- /dev/null
+++ b/network-cfg.json
@@ -0,0 +1,69 @@
+{
+  "devices" : {
+    "of:000000000a4001cf" : {
+      "accessDevice" : {
+        "uplink" : "65536",
+        "vlan" : "1"
+      },
+      "basic" : {
+        "driver" : "voltha"
+      }
+    }
+  },
+  "apps" : {
+    "org.opencord.dhcpl2relay" : {
+      "dhcpl2relay" : {
+        "useOltUplinkForServerPktInOut" : true
+      }
+    },
+    "org.opencord.aaa" : {
+      "AAA" : {
+        "radiusIp" : "172.16.0.1",
+        "radiusServerPort" : "1645",
+        "radiusSecret" : "secret",
+        "nasIp" : "172.16.0.10",
+        "radiusConnectionType" : "socket",
+        "packetCustomizer" : "att"
+      }
+    },
+    "org.opencord.sadis" : {
+      "sadis" : {
+        "integration" : {
+          "cache" : {
+            "enabled" : true,
+            "maxsize" : 50,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "EC1829000886",
+          "uplinkPort" : 65536,
+          "hardwareIdentifier" : "3c:2c:99:f7:c6:82",
+          "ipAddress" : "10.64.1.207",
+          "nasId" : "ATLEDGEVOLT1"
+        }, {
+          "id" : "BRCM33333333-1",
+          "cTag" : 22,
+          "sTag" : 13,
+          "nasPortId" : "PON 1/1/3/1:3.1.1",
+          "circuitId" : "PON 1/1/3/1:3.1.1-CID",
+          "remoteId" : "ATLEDGEVOLT1-RID"
+         }, {
+          "id" : "BRCM33333333-2",
+          "cTag" : 23,
+          "sTag" : 13,
+          "nasPortId" : "PON 1/1/3/1:4.1.1",
+          "circuitId" : "PON 1/1/3/1:4.1.1-CID",
+          "remoteId" : "ATLEDGEVOLT1-RID"
+         }, {
+          "id" : "BRCM33333333-3",
+          "cTag" : 24,
+          "sTag" : 13,
+          "nasPortId" : "PON 1/1/3/1:5.1.1",
+          "circuitId" : "PON 1/1/3/1:5.1.1-CID",
+          "remoteId" : "ATLEDGEVOLT1-RID"
+        }]
+      }
+    }
+  }
+}
