Optimize docker image footprint for starlingx 55/79855/1
authorHaibin Huang <haibin.huang@intel.com>
Thu, 7 Mar 2019 03:26:42 +0000 (11:26 +0800)
committerHaibin Huang <haibin.huang@intel.com>
Thu, 7 Mar 2019 03:27:40 +0000 (11:27 +0800)
Rebase to python:2-slim
Remove unused pip packages

Change-Id: Icef1b522b47f999b5c9a18e0a1184e642fbae734
Issue-ID: MULTICLOUD-517
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
starlingx/docker/Dockerfile
starlingx/requirements.txt
starlingx/test-requirements.txt [new file with mode: 0644]
starlingx/tox.ini

index b676e06..a987f4d 100644 (file)
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM python:2.7
+FROM python:2-slim
 
 ARG HTTP_PROXY=${HTTP_PROXY}
 ARG HTTPS_PROXY=${HTTPS_PROXY}
@@ -32,16 +32,20 @@ ENV AAI_PASSWORD "AAI"
 EXPOSE 9009
 
 RUN groupadd -r onap && useradd -r -g onap onap
-WORKDIR /opt/starlingx
-RUN apt-get update && apt-get install -y memcached unzip
-RUN wget -O /opt/multicloud-openstack-starlingx.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.multicloud.openstack&a=multicloud-openstack-starlingx&e=zip&v=1.3.0-SNAPSHOT" && \
+
+RUN apt-get update && \ 
+    apt-get install -y memcached wget unzip gcc && \
+    cd /opt/ && \
+    wget -O /opt/multicloud-openstack-starlingx.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.multicloud.openstack&a=multicloud-openstack-starlingx&e=zip&v=1.3.0-SNAPSHOT" && \
     unzip -q -o -B /opt/multicloud-openstack-starlingx.zip -d /opt/ && \
-    rm -f /opt/multicloud-openstack-starlingx.zip
+    rm -f /opt/multicloud-openstack-starlingx.zip && \
+    pip install -r /opt/starlingx/requirements.txt && \
+    apt-get --purge remove -y wget unzip gcc && \
+    apt-get -y autoremove && \
+    chown onap:onap /opt/starlingx -R
+    
 RUN mkdir -p /var/log/onap/multicloud/openstack/starlingx/
-#COPY ./ .
-RUN pip install -r requirements.txt
-RUN chown onap:onap /opt/starlingx -R
 
 USER onap
-
-CMD "/opt/starlingx/run.sh"
+WORKDIR /opt/starlingx
+CMD /bin/sh -c "/opt/starlingx/run.sh"
index f37d41f..c016f77 100644 (file)
@@ -29,9 +29,9 @@ python-memcached
 uwsgi
 
 # for unit test
-coverage==4.2
-mock==2.0.0
-unittest_xml_reporting==1.12.0
+coverage==4.2
+mock==2.0.0
+unittest_xml_reporting==1.12.0
 
 # for onap logging
 onappylog>=1.0.8
diff --git a/starlingx/test-requirements.txt b/starlingx/test-requirements.txt
new file mode 100644 (file)
index 0000000..cc3059e
--- /dev/null
@@ -0,0 +1,6 @@
+# for unit test
+coverage==4.2
+mock==2.0.0
+unittest_xml_reporting==1.12.0
+
+pylint # GPLv2
index cd5b657..09d3a50 100644 (file)
@@ -27,7 +27,9 @@ max-complexity = 27
 [testenv]
 setenv =
     PYTHONPATH = {toxinidir}/../share
-deps = -r{toxinidir}/requirements.txt
+deps = 
+    -r{toxinidir}/requirements.txt
+    -r{toxinidir}/test-requirements.txt
 commands =
     coverage run --branch manage.py test starlingx
     coverage report --omit="./venv-tox/*,./.tox/*,*tests*,*__init__.py,*newton_base*,*common*" --fail-under=30