| # ================================================================================ |
| # 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:3.6 |
| |
| ENV INSROOT /opt/app |
| ENV APPUSER policy_handler |
| ENV APPDIR ${INSROOT}/${APPUSER} |
| |
| RUN useradd -d ${APPDIR} ${APPUSER} |
| |
| WORKDIR ${APPDIR} |
| |
| # Make port 25577 available to the world outside this container |
| EXPOSE 25577 |
| |
| # Copy the current directory content into the container at ${APPDIR} |
| COPY ./*.py ./ |
| COPY ./*.in ./ |
| COPY ./*.txt ./ |
| 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 \ |
| && 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} |
| |
| VOLUME ${APPDIR}/logs |
| |
| # Run run_policy.sh when the container launches |
| CMD ["./run_policy.sh"] |