2.2.0 policy-handler - customization per company
- added etc_customize/ folder and customize.sh script
= customize.sh script is expected to be overridden by company
to customize Docker image build
= the whole etc_customize/ folder is copied into docker image
= it is up to the company what to put into that folder - any files
- added customize/ folder with CustomizeBase and Customize classes
= CustomizeBase defines the interface and the default=ONAP behavior
= CustomizeBase is owned by ONAP and should not be changed
by the company
= Customize inherits CustomizeBase
= policy-handler instantiates Customize
to get the customized behavior
= Customize is owned by the company and should be changed
by the company = ONAP is not going to change Customize
= the methods of Customize are expected to be overridden
by the company to change the behavior of the policy-handler
= sample Customize class can be found in README.md
= Company is allowed to add more files to customize/ folder
if that is required for better structuring of their code
as soon as it is invoked by the methods of Customize
Change-Id: I46f8170afaaa48e1005e4398a768a781db0a0e6c
Signed-off-by: Alex Shatov <alexs@att.com>
Issue-ID: DCAEGEN2-379
diff --git a/Dockerfile b/Dockerfile
index 9d77db6..348676a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,22 @@
-# Use an official Python runtime as a base image
+# ================================================================================
+# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# 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.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+# Use the official Python as the base image
FROM python:2.7
ENV INSROOT /opt/app
@@ -12,23 +30,24 @@
# Make port 25577 available to the world outside this container
EXPOSE 25577
-# Copy the current directory contents into the container at ${APPDIR}
+# Copy the current directory content into the container at ${APPDIR}
COPY ./*.py ./
COPY ./*.in ./
COPY ./*.txt ./
-COPY ./*.sh ./
+COPY ./run_policy.sh ./
COPY ./policyhandler/ ./policyhandler/
COPY ./etc/ ./etc/
+COPY ./etc_customize/ ./etc_customize/
RUN mkdir -p ${APPDIR}/logs \
&& chown -R ${APPUSER}:${APPUSER} ${APPDIR} \
&& chmod a+w ${APPDIR}/logs \
&& chmod 500 ${APPDIR}/etc \
&& chmod 500 ${APPDIR}/run_policy.sh \
- && ls -la && ls -la ./policyhandler
-
-# Install any needed packages specified in requirements.txt
-RUN pip install -r requirements.txt
+ && pip install -r requirements.txt \
+ && (CUST_SH=./etc_customize/customize.sh && test -e ${CUST_SH} && chmod 500 ${CUST_SH} \
+ && (${CUST_SH} | tee -a logs/"customize_${APPUSER}_$(date +%Y_%m%d-%H%M%S).log" 2>&1)) \
+ && ls -laR ${APPDIR}/
USER ${APPUSER}