CORD-842 Dockerfile for building Chameleon
Change-Id: Ife9f104aa4c43e3e5df8e78deb5648678dc928c8
diff --git a/containers/chameleon/Dockerfile.chameleon b/containers/chameleon/Dockerfile.chameleon
new file mode 100644
index 0000000..f03245d
--- /dev/null
+++ b/containers/chameleon/Dockerfile.chameleon
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+#
+# 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.
+#
+
+FROM xosproject/xos-base
+
+MAINTAINER Scott Baker <scottb@onlab.us>
+MAINTAINER Zsolt Haraszti <zharaszt@ciena.com>
+MAINTAINER Ali Al-Shabibi <ali.al-shabibi@onlab.us>
+MAINTAINER Nathan Knuth <nathan.knuth@tibitcom.com>
+
+# xos-base already has protoc and dependencies installed
+
+# Bundle app source
+RUN mkdir /chameleon && touch /chameleon/__init__.py
+ENV PYTHONPATH=/chameleon
+COPY . /chameleon/chameleon
+
+# Build the protos
+RUN chdir chameleon/chameleon/protos && VOLTHA_BASE=anything make
+
+# Exposing process and default entry point
+CMD ["python", "chameleon/chameleon/main.py"]
diff --git a/containers/chameleon/Makefile b/containers/chameleon/Makefile
new file mode 100644
index 0000000..492eb77
--- /dev/null
+++ b/containers/chameleon/Makefile
@@ -0,0 +1,37 @@
+# Docker container Makefile for XOS
+#
+# Targets:
+#
+# `base` - XOS prerequistie files, no XOS code, builds xosproject/xos-base
+# `build` - base + XOS code, git pulled in Dockerfile from main repo,
+# builds xosproject/xos
+# `custom` - base + XOS code, git pulled in Dockerfile from selectable repo,
+# builds xosproject/xos
+# `devel` - base + XOS code from local directory, builds xosproject/xos
+# `test` - xosproject/xos + nodejs testing frameworks, builds
+# xosproject/xos-test
+#
+
+NO_DOCKER_CACHE ?= false
+
+CONTAINER_NAME ?= chameleon
+IMAGE_NAME ?= xosproject/chameleon
+
+XOS_GIT_REPO ?= https://github.com/opencord/xos.git
+XOS_GIT_BRANCH ?= master
+
+XOS_GIT_COMMIT_HASH ?= $(shell git log --pretty=format:'%H' -n 1 || echo -n "unknown" )
+XOS_GIT_COMMIT_DATE ?= $(shell git log --pretty=format:'%ad' -n 1 || echo -n "unknown" )
+
+BUILD_ARGS =
+ifdef http_proxy
+BUILD_ARGS += --build-arg http_proxy=${http_proxy}
+endif
+ifdef https_proxy
+BUILD_ARGS += --build-arg https_proxy=${https_proxy}
+endif
+
+chameleon:
+ sudo cp Dockerfile.chameleon /opt/cord/component/chameleon
+ sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+ -f /opt/cord/component/chameleon/Dockerfile.chameleon -t ${IMAGE_NAME} ${BUILD_ARGS} /opt/cord/component/chameleon
diff --git a/containers/chameleon/README.md b/containers/chameleon/README.md
new file mode 100644
index 0000000..9222a9e
--- /dev/null
+++ b/containers/chameleon/README.md
@@ -0,0 +1,5 @@
+This directory contains a dockerfile for building Chameleon for XOS use.
+
+Expect that shortly Chameleon will be pulled from Dockerhub rather than
+built locally, and that this Dockerfile may be left only as a convenience
+for developers.