Getting docker working after grpc added
This required (unfortunately) at least for now to move to an
Ubuntu image instead of alpine. This is becasue the grpcio-tools
and grpcio python libs use cython which in turn has some stronger
dependencies on runtime packages, and we could not yet resolve
all the issues arising on alpine.
Changes:
- committed *.desc and *_pb2.py output files so that protoc tools
are not needed when building dockerimage
- moved google protoc extension files (http.proto and annotations.proto
to under python source tree. Otherwise they were not copied into
the docker image
- created Ubuntu Dockerfile while we retained the old apline file
so that we can resurrect the alpine version later
diff --git a/Dockerfile.alpine b/Dockerfile.alpine
new file mode 100644
index 0000000..da1d7ae
--- /dev/null
+++ b/Dockerfile.alpine
@@ -0,0 +1,41 @@
+#!/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 alpine:3.4
+
+MAINTAINER Zsolt Haraszti <zharaszt@ciena.com>
+MAINTAINER Ali Al-Shabibi <ali.al-shabibi@onlab.us>
+MAINTAINER Nathan Knuth <nathan.knuth@tibitcom.com>
+
+# Update to have latest images
+RUN apk add --update python py-pip && \
+ apk --allow-untrusted --no-cache -X http://apkproxy.heroku.com/andyshinn/alpine-pkg-glibc add glibc glibc-bin
+
+COPY requirements.txt /tmp/requirements.txt
+
+# Install app dependencies
+RUN apk add build-base gcc abuild binutils python-dev libffi-dev openssl-dev git linux-headers && \
+ pip install cython enum34 six && \
+ pip install -r /tmp/requirements.txt && \
+ apk del --purge build-base gcc abuild binutils python-dev libffi-dev openssl-dev git linux-headers
+
+# Bundle app source
+COPY voltha /voltha
+
+# Exposing process and default entry point
+# EXPOSE 8000
+CMD ["python", "voltha/main.py"]