diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..f59ec20
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..8db3e3f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,126 @@
+# 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.
+
+# set default shell options
+SHELL = bash -e -o pipefail
+
+## Variables
+VERSION                   ?= $(shell cat ./VERSION)
+GO_JUNIT_REPORT_VERSION   ?= "0.9.1"
+GOCOVER_COBERTURA_VERSION ?= "v0.0.0-20180217150009-aaee18c8195c"
+GOLANG_VERSION            ?= "1.12.15"
+GOLANGCI_LINT_VERSION     ?= "1.17.0"
+HADOLINT_VERSION          ?= "1.17.4"
+PROTOC_VERSION            ?= "3.7.0"
+PROTOC_SHA256SUM          ?= "a1b8ed22d6dc53c5b8680a6f1760a305b33ef471bece482e92728f00ba2a2969"
+PROTOC_GEN_GO_VERSION     ?= "1.3.1"
+
+# Docker related
+DOCKER_LABEL_VCS_DIRTY     = false
+ifneq ($(shell git status --porcelain | wc -l | sed -e 's/ //g'),0)
+    DOCKER_LABEL_VCS_DIRTY = true
+    VERSION                = latest
+endif
+
+DOCKER_EXTRA_ARGS          ?=
+DOCKER_REGISTRY            ?= voltha
+DOCKER_REPOSITORY          ?= voltha-ci-tools
+IMAGENAME                  = ${DOCKER_REGISTRY}/${DOCKER_REPOSITORY}
+
+## Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL       ?= $(shell git remote get-url "$(shell git remote)" 2>/dev/null)
+DOCKER_LABEL_VCS_REF       = $(shell git rev-parse HEAD)
+DOCKER_LABEL_BUILD_DATE    ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
+DOCKER_LABEL_COMMIT_DATE   = $(shell git show -s --format=%cd --date=iso-strict HEAD)
+
+DOCKER_BUILD_ARGS ?= \
+	${DOCKER_EXTRA_ARGS} \
+	--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}" \
+	--build-arg org_opencord_vcs_dirty="${DOCKER_LABEL_VCS_DIRTY}"
+
+## runnable tool containers
+HADOLINT = docker run --rm --user $$(id -u):$$(id -g) -v $$PWD:/app ${IMAGENAME}:${VERSION}-hadolint hadolint
+
+lint: docker-lint
+
+docker-lint: hadolint
+	@echo "Linting Dockerfiles..."
+	@${HADOLINT} $(shell ls docker/*.Dockerfile)
+	@echo "Dockerfiles linted OK"
+
+
+build: docker-build
+
+docker-build: go-junit-report gocover-cobertura golang golangci-lint hadolint protoc
+
+go-junit-report:
+	docker build ${DOCKER_BUILD_ARGS} \
+	--build-arg GO_JUNIT_REPORT_VERSION=${GO_JUNIT_REPORT_VERSION} \
+	-t ${IMAGENAME}:${VERSION}-go-junit-report \
+	-t ${IMAGENAME}:latest-go-junit-report \
+	-f docker/go-junit-report.Dockerfile .
+
+gocover-cobertura:
+	docker build ${DOCKER_BUILD_ARGS} \
+	--build-arg GOCOVER_COBERTURA_VERSION=${GOCOVER_COBERTURA_VERSION} \
+	-t ${IMAGENAME}:${VERSION}-gocover-cobertura \
+	-t ${IMAGENAME}:latest-gocover-cobertura \
+	-f docker/gocover-cobertura.Dockerfile .
+
+golang:
+	docker build ${DOCKER_BUILD_ARGS} \
+	--build-arg GOLANG_VERSION=${GOLANG_VERSION} \
+	-t ${IMAGENAME}:${VERSION}-golang \
+	-t ${IMAGENAME}:latest-golang \
+	-f docker/golang.Dockerfile .
+
+golangci-lint:
+	docker build ${DOCKER_BUILD_ARGS} \
+	--build-arg GOLANGCI_LINT_VERSION=${GOLANGCI_LINT_VERSION} \
+	-t ${IMAGENAME}:${VERSION}-golangci-lint \
+	-t ${IMAGENAME}:latest-golangci-lint \
+	-f docker/golangci-lint.Dockerfile .
+
+hadolint:
+	docker build ${DOCKER_BUILD_ARGS} \
+    --build-arg HADOLINT_VERSION=${HADOLINT_VERSION} \
+    -t ${IMAGENAME}:${VERSION}-hadolint \
+    -t ${IMAGENAME}:latest-hadolint \
+    -f docker/hadolint.Dockerfile .
+
+protoc:
+	docker build ${DOCKER_BUILD_ARGS} \
+	--build-arg PROTOC_VERSION=${PROTOC_VERSION} \
+	--build-arg PROTOC_SHA256SUM=${PROTOC_SHA256SUM} \
+	--build-arg PROTOC_GEN_GO_VERSION=${PROTOC_GEN_GO_VERSION} \
+	-t ${IMAGENAME}:${VERSION}-protoc \
+	-t ${IMAGENAME}:latest-protoc \
+	-f docker/protoc.Dockerfile .
+
+docker-push:
+ifneq (false,$(DOCKER_LABEL_VCS_DIRTY))
+	@echo "Local repo is dirty.  Refusing to push."
+	@exit 1
+endif
+	docker push ${IMAGENAME}:${VERSION}-go-junit-report
+	docker push ${IMAGENAME}:${VERSION}-gocover-cobertura
+	docker push ${IMAGENAME}:${VERSION}-golang
+	docker push ${IMAGENAME}:${VERSION}-golangci-lint
+	docker push ${IMAGENAME}:${VERSION}-hadolint
+	docker push ${IMAGENAME}:${VERSION}-protoc
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..066ba7e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+# Dockerized Tools for Voltha
+
+This repo contains Dockerfiles used to generate versioned tool containers.
+
+## Versioning
+
+Final docker images are tagged with the image version from the VERSION file.  This allows projects to specify a single "voltha toolchain version" and get all relevant tool versions.
+
+The VERSION file should be changed using these rules:
+
+* Bump Patch version if:
+  * Patch version of a tool has changed.
+  * This repo's supporting files have changed (Makefile, readme, etc.)  This rule assumes that the containers generated are backwards-compatible; if they are not, bump the major version instead.
+* Bump Minor version if:
+  * Minor version of a tool has changed.
+  * A new tool has been added.
+* Bump Major version if:
+  * Major version of a tool has changed.
+* Bump patch/minor/major version according to semver rules if a Dockerfile is changed.
+* Reset lesser versions if greater versions change.
+* Do not use -dev versions.
+
+## Tool Usage
+
+Only use containers tagged with `<VERSION>-tool`.<br/>
+Do NOT use containers tagged with `tool-<TOOL_VERSION>`.
+
+Some examples of how to use these containers:
+
+* golang -
+  `docker run --rm --user $(id -u):$(id -g) -v $PWD:/app -v gocache:/.cache -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-golang go <args>`
+* golangci-lint -
+  `docker run --rm --user $(id -u):$(id -g) -v $PWD:/app -v gocache:/.cache -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-golangci-lint golangci-lint <args>`
+* protoc -
+  `docker run --rm --user $(id -u):$(id -g) -v $PWD:/app voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-protoc protoc <args>`
+* hadolint -
+  `docker run --rm --user $(id -u):$(id -g) -v $PWD:/app voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-hadolint hadolint <args>`
+
+Details:
+
+* `--user` is specified so that generated files have sane ownership and permissions.
+* `-v` bind-mounts the local folder into the container.
+* `-v` is also used by golang containers to bind-mount volumes for caches.
+
+## Key Commands
+
+* `make build` to build containers
+* `make lint` to lint the Dockerfiles
+* `make docker-push` to push built containers to a registry
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..afaf360
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+1.0.0
\ No newline at end of file
diff --git a/docker/go-junit-report.Dockerfile b/docker/go-junit-report.Dockerfile
new file mode 100644
index 0000000..36ff473
--- /dev/null
+++ b/docker/go-junit-report.Dockerfile
@@ -0,0 +1,47 @@
+# 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.
+
+FROM golang:1.13.5-alpine as build
+
+RUN apk add --no-cache build-base=0.5-r1
+
+# download & compile this specific version of go-junit-report
+ARG GO_JUNIT_REPORT_VERSION
+RUN GO111MODULE=on CGO_ENABLED=0 go get -u -ldflags "-linkmode external -extldflags -static" github.com/jstemmer/go-junit-report@v$GO_JUNIT_REPORT_VERSION
+
+FROM busybox:1.31.1
+
+# copy go-junit-report
+COPY --from=build /go/bin/* /usr/local/bin/
+
+WORKDIR /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
+ARG GO_JUNIT_REPORT_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-protoc \
+      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 \
+      org.opencord.go-junit-report-version=$GO_JUNIT_REPORT_VERSION
diff --git a/docker/gocover-cobertura.Dockerfile b/docker/gocover-cobertura.Dockerfile
new file mode 100644
index 0000000..74e4600
--- /dev/null
+++ b/docker/gocover-cobertura.Dockerfile
@@ -0,0 +1,47 @@
+# 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.
+
+FROM golang:1.13.5-alpine as build
+
+RUN apk add --no-cache build-base=0.5-r1
+
+# download & compile this specific version of gocover-cobertura
+ARG GOCOVER_COBERTURA_VERSION
+RUN GO111MODULE=on CGO_ENABLED=0 go get -u -ldflags "-linkmode external -extldflags -static" github.com/t-yuki/gocover-cobertura@$GOCOVER_COBERTURA_VERSION
+
+FROM busybox:1.31.1
+
+# copy gocover-cobertura
+COPY --from=build /go/bin/* /usr/local/bin/
+
+WORKDIR /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
+ARG GOCOVER_COBERTURA_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-protoc \
+      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 \
+      org.opencord.gocover-cobertura-version=$GOCOVER_COBERTURA_VERSION
diff --git a/docker/golang.Dockerfile b/docker/golang.Dockerfile
new file mode 100644
index 0000000..e22bd8c
--- /dev/null
+++ b/docker/golang.Dockerfile
@@ -0,0 +1,42 @@
+# 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.
+
+ARG GOLANG_VERSION
+FROM golang:$GOLANG_VERSION-alpine
+
+RUN apk add --no-cache git=2.24.1-r0 && \
+    mkdir -m 777 /.cache /go/pkg
+
+ENV GO111MODULE=on CGO_ENABLED=0
+
+WORKDIR /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
+ARG GOLANG_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-protoc \
+      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 \
+      org.opencord.golang-version=$GOLANG_VERSION
\ No newline at end of file
diff --git a/docker/golangci-lint.Dockerfile b/docker/golangci-lint.Dockerfile
new file mode 100644
index 0000000..c494331
--- /dev/null
+++ b/docker/golangci-lint.Dockerfile
@@ -0,0 +1,40 @@
+# 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.
+
+ARG GOLANGCI_LINT_VERSION
+FROM golangci/golangci-lint:v$GOLANGCI_LINT_VERSION
+
+RUN mkdir -m 777 /.cache /go/pkg
+
+WORKDIR /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
+ARG GOLANGCI_LINT_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-golangci-lint \
+      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 \
+      org.opencord.golangci-lint-version=$GOLANGCI_LINT_VERSION
+
diff --git a/docker/hadolint.Dockerfile b/docker/hadolint.Dockerfile
new file mode 100644
index 0000000..dec9bcd
--- /dev/null
+++ b/docker/hadolint.Dockerfile
@@ -0,0 +1,38 @@
+# 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.
+
+ARG HADOLINT_VERSION
+FROM hadolint/hadolint:v$HADOLINT_VERSION
+
+WORKDIR /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
+ARG HADOLINT_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-golangci-lint \
+      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 \
+      org.opencord.hadolint-version=$HADOLINT_VERSION
+
diff --git a/docker/protoc.Dockerfile b/docker/protoc.Dockerfile
new file mode 100644
index 0000000..64fad1e
--- /dev/null
+++ b/docker/protoc.Dockerfile
@@ -0,0 +1,70 @@
+# 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.
+
+FROM golang:1.13.5-alpine as build
+
+ARG PROTOC_VERSION
+ARG PROTOC_GEN_GO_VERSION
+ARG PROTOC_SHA256SUM
+
+RUN apk add --no-cache libatomic=9.2.0-r3 musl=1.1.24-r0
+
+# download & compile this specific version of protoc-gen-go
+RUN GO111MODULE=on go get -u github.com/golang/protobuf/protoc-gen-go@v$PROTOC_GEN_GO_VERSION
+
+RUN mkdir -p /tmp/protoc3 && \
+    wget -O /tmp/protoc-${PROTOC_VERSION}-linux-x86_64.zip https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip && \
+    [ "$(sha256sum /tmp/protoc-${PROTOC_VERSION}-linux-x86_64.zip)" = "${PROTOC_SHA256SUM}  /tmp/protoc-${PROTOC_VERSION}-linux-x86_64.zip" ] && \
+    unzip /tmp/protoc-${PROTOC_VERSION}-linux-x86_64.zip -d /tmp/protoc3
+
+
+FROM busybox:1.31.1-glibc
+
+# dynamic libs for protoc
+COPY --from=build /usr/lib/libatomic.so.1 /usr/lib/
+COPY --from=build /lib/libc.musl-x86_64.so.1 /usr/lib/
+ENV LD_LIBRARY_PATH=/usr/lib
+
+# protoc & well-known-type definitions
+COPY --from=build /tmp/protoc3/bin/* /usr/local/bin/
+COPY --from=build /tmp/protoc3/include/ /usr/local/include/
+# fix permissions so non-root can use
+RUN chmod -R a+rx /usr/local/bin/protoc && \
+    chmod -R a+rX /usr/local/include/
+
+# copy protoc-gen-go
+COPY --from=build /go/bin/* /usr/local/bin/
+
+WORKDIR /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
+ARG PROTOC_VERSION=unknown
+ARG PROTOC_GEN_GO_VERSION=unknown
+
+LABEL org.label-schema.schema-version=1.0 \
+      org.label-schema.name=voltha-protoc \
+      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 \
+      org.opencord.protoc-version=$PROTOC_VERSION \
+      org.opencord.protoc-gen-go-version=$PROTOC_GEN_GO_VERSION
