From abff9d4966b12beeafcf8366712d2e27555fd2a2 Mon Sep 17 00:00:00 2001 From: krishnaa96 Date: Thu, 24 Jun 2021 16:12:32 +0530 Subject: Remove unwanted components from image Remove unwanted linux components from the docker image and move the common parts to osdf-base image Issue-ID: OPTFRA-853 Signed-off-by: krishnaa96 Change-Id: I1b2185781e187526bae114ad718c4758d373cee5 --- docker/opteng/Dockerfile | 59 +++++------------------- docker/opteng/assembly/osdf-files.xml | 5 +- docker/osdf-lib-base/Dockerfile | 49 ++++++++++++++++++++ docker/osdf-lib-base/assembly/osdf-lib-files.xml | 43 +++++++++++++++++ docker/osdf/Dockerfile | 50 ++++---------------- docker/osdf/assembly/osdf-files.xml | 13 +++--- pom.xml | 21 +++++++++ 7 files changed, 143 insertions(+), 97 deletions(-) create mode 100644 docker/osdf-lib-base/Dockerfile create mode 100644 docker/osdf-lib-base/assembly/osdf-lib-files.xml diff --git a/docker/opteng/Dockerfile b/docker/opteng/Dockerfile index d8ffc4a..037771a 100644 --- a/docker/opteng/Dockerfile +++ b/docker/opteng/Dockerfile @@ -1,6 +1,7 @@ # # ------------------------------------------------------------------------- # Copyright (c) 2020 AT&T Intellectual Property +# Copyright (C) 2021 Wipro Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,63 +18,25 @@ # ------------------------------------------------------------------------- # -FROM ubuntu:20.04 +FROM osdf-base:latest -ARG MVN_ARTIFACT_VERSION -ARG REPO -ARG HTTP_PROXY=${HTTP_PROXY} -ARG HTTPS_PROXY=${HTTPS_PROXY} -ARG DEBIAN_FRONTEND=noninteractive +EXPOSE 8699 -ENV http_proxy $HTTP_PROXY -ENV https_proxy $HTTPS_PROXY - -ENV OSDF_PORT "8699" -EXPOSE ${OSDF_PORT} - -RUN apt-get update -y \ - && apt-get install -y --no-install-recommends software-properties-common wget \ - curl ca-certificates vim unzip zip git binutils binfmt-support build-essential \ - python3 python3-setuptools python3-dev \ - && ln -s /usr/bin/python3.8 /usr/bin/python \ - && curl -s https://bootstrap.pypa.io/get-pip.py | python \ - && python -m pip --no-cache-dir install --upgrade pip wheel setuptools && rm -rf /var/lib/apt/lists/* - -ARG MZN_DL_URL=https://github.com/MiniZinc/MiniZincIDE/releases/download/2.4.3/MiniZincIDE-2.4.3-bundle-linux-x86_64.tgz -ARG ORTOOLS_URL=https://github.com/google/or-tools/releases/download/v7.8/or-tools_ubuntu-20.04_v7.8.7959.tar.gz - -# Minizinc -RUN wget -q $MZN_DL_URL -O /tmp/mz.tgz \ - && mkdir -p /mz-dist && tar xzf /tmp/mz.tgz -C /mz-dist --strip-components 1\ - && rm /tmp/mz.tgz - -RUN wget -q ${ORTOOLS_URL} -O /tmp/flatzinc.tar.gz \ - && mkdir -p /ortools \ - && tar zxf /tmp/flatzinc.tar.gz -C /ortools --strip-components 1 \ - && rm /tmp/flatzinc.tar.gz +# OSDF +WORKDIR /opt/osdf -ENV SHELL /bin/bash -ENV PATH /mz-dist/bin:$PATH +COPY onap-osdf-tm/requirements-opteng.txt /tmp/requirements-opteng.txt -RUN groupadd onap \ - && useradd -m -g onap onap +RUN pip install --no-cache-dir -r /tmp/requirements-opteng.txt -# OSDF -WORKDIR /opt/osdf -#RUN wget -O /opt/osdf.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.optf.osdf&a=optf-osdf&e=zip&v=1.3.4" && \ -# unzip -q -o -B /opt/osdf.zip -d /opt/ && \ -# rm -f /opt/osdf.zip +COPY onap-osdf-tm/ /opt/osdf -COPY onap-osdf-tm/optf-osdf-${MVN_ARTIFACT_VERSION}.zip /tmp/optf-osdf.zip -COPY onap-osdf-tm/runtime /opt/osdf/runtime -COPY onap-osdf-tm/requirements-opteng.txt . -RUN unzip -q -o -B /tmp/optf-osdf.zip -d /opt/ && rm -f /tmp/optf-osdf.zip RUN mkdir -p /var/log/onap/optf/osdf/ \ && chown onap:onap /var/log/onap -R \ && chown onap:onap /opt/osdf -R -RUN python -m pip install --no-cache-dir -r requirements.txt -r requirements-opteng.txt - USER onap -CMD [ "/opt/osdf/osdfapp.sh", "-x", "solverapp.py", "-c", "/opt/osdf/config/opteng_config.yaml" ] +ENV OSDF_CONFIG_FILE "/opt/osdf/config/opteng_config.yaml" + +CMD [ "python", "solverapp.py" ] diff --git a/docker/opteng/assembly/osdf-files.xml b/docker/opteng/assembly/osdf-files.xml index 60dd6cc..03a6c45 100644 --- a/docker/opteng/assembly/osdf-files.xml +++ b/docker/opteng/assembly/osdf-files.xml @@ -37,6 +37,10 @@ runtime/** + osdf/** + config/** + setup.py + solverapp.py **/*.pyc @@ -50,6 +54,5 @@ / - diff --git a/docker/osdf-lib-base/Dockerfile b/docker/osdf-lib-base/Dockerfile new file mode 100644 index 0000000..e8de5ab --- /dev/null +++ b/docker/osdf-lib-base/Dockerfile @@ -0,0 +1,49 @@ +# +# ------------------------------------------------------------------------- +# Copyright (C) 2021 Wipro Limited. +# +# 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 python:3.9-slim-buster + +ARG HTTP_PROXY=${HTTP_PROXY} +ARG HTTPS_PROXY=${HTTPS_PROXY} +ARG DEBIAN_FRONTEND=noninteractive + +ENV http_proxy $HTTP_PROXY +ENV https_proxy $HTTPS_PROXY + +RUN groupadd onap \ + && useradd -m -g onap onap + +# Minizinc +RUN apt-get update \ + && apt-get install -y wget \ + && wget -q https://github.com/MiniZinc/MiniZincIDE/releases/download/2.4.3/MiniZincIDE-2.4.3-bundle-linux-x86_64.tgz -O /tmp/mz.tgz \ + && mkdir -p /mz-dist && tar xzf /tmp/mz.tgz -C /mz-dist --strip-components 1\ + && rm /tmp/mz.tgz \ + && wget -q https://github.com/google/or-tools/releases/download/v7.8/or-tools_ubuntu-20.04_v7.8.7959.tar.gz -O /tmp/flatzinc.tar.gz \ + && mkdir -p /ortools \ + && tar zxf /tmp/flatzinc.tar.gz -C /ortools --strip-components 1 \ + && rm /tmp/flatzinc.tar.gz \ + && apt-get remove -y wget + +ENV SHELL /bin/bash +ENV PATH /mz-dist/bin:$PATH + +COPY onap-osdf-tm/requirements.txt /tmp/requirements.txt + +RUN pip install --no-cache-dir -r /tmp/requirements.txt diff --git a/docker/osdf-lib-base/assembly/osdf-lib-files.xml b/docker/osdf-lib-base/assembly/osdf-lib-files.xml new file mode 100644 index 0000000..d3cb5dd --- /dev/null +++ b/docker/osdf-lib-base/assembly/osdf-lib-files.xml @@ -0,0 +1,43 @@ + + + + osdf-lib-files + + + tar.gz + + false + + + + + + requirements.txt + + + **/*.pyc + **/__pycache__/** + + / + + + + diff --git a/docker/osdf/Dockerfile b/docker/osdf/Dockerfile index 9d70961..d1fd2c4 100644 --- a/docker/osdf/Dockerfile +++ b/docker/osdf/Dockerfile @@ -1,6 +1,7 @@ # # ------------------------------------------------------------------------- # Copyright (c) 2018 AT&T Intellectual Property +# Copyright (C) 2021 Wipro Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,56 +18,23 @@ # ------------------------------------------------------------------------- # -FROM ubuntu:20.04 +FROM osdf-base:latest -ARG MVN_ARTIFACT_VERSION -ARG REPO -ARG HTTP_PROXY=${HTTP_PROXY} -ARG HTTPS_PROXY=${HTTPS_PROXY} -ARG DEBIAN_FRONTEND=noninteractive - -ENV http_proxy $HTTP_PROXY -ENV https_proxy $HTTPS_PROXY - -ENV OSDF_PORT "8699" -EXPOSE ${OSDF_PORT} - -RUN apt-get update -y \ - && apt-get install -y --no-install-recommends software-properties-common wget \ - curl ca-certificates vim unzip zip git binutils binfmt-support build-essential \ - python3 python3-setuptools python3-dev \ - && ln -s /usr/bin/python3.8 /usr/bin/python \ - && curl -s https://bootstrap.pypa.io/get-pip.py | python \ - && python -m pip --no-cache-dir install --upgrade pip wheel setuptools && rm -rf /var/lib/apt/lists/* - -ARG MZN_DL_URL=https://github.com/MiniZinc/MiniZincIDE/releases/download/2.4.3/MiniZincIDE-2.4.3-bundle-linux-x86_64.tgz - -# Minizinc -RUN wget -q $MZN_DL_URL -O /tmp/mz.tgz \ - && mkdir -p /mz-dist && tar xzf /tmp/mz.tgz -C /mz-dist --strip-components 1\ - && rm /tmp/mz.tgz - -ENV SHELL /bin/bash -ENV PATH /mz-dist/bin:$PATH +EXPOSE 8699 # OSDF WORKDIR /opt/osdf -#RUN wget -O /opt/osdf.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.optf.osdf&a=optf-osdf&e=zip&v=1.3.4" && \ -# unzip -q -o -B /opt/osdf.zip -d /opt/ && \ -# rm -f /opt/osdf.zip -RUN groupadd onap \ - && useradd -m -g onap onap -COPY onap-osdf-tm/optf-osdf-${MVN_ARTIFACT_VERSION}.zip /tmp/optf-osdf.zip -COPY onap-osdf-tm/apps /opt/osdf/apps -RUN unzip -q -o -B /tmp/optf-osdf.zip -d /opt/ && rm -f /tmp/optf-osdf.zip +COPY onap-osdf-tm/requirements-osdf.txt /tmp/requirements-osdf.txt + +RUN pip install --no-cache-dir -r /tmp/requirements-osdf.txt + +COPY onap-osdf-tm /opt/osdf RUN mkdir -p /var/log/onap/optf/osdf/ \ && chown -R onap:onap /var/log/onap \ && chown -R onap:onap /opt/osdf -RUN python -m pip install --no-cache-dir -r requirements.txt -r requirements-osdf.txt - USER onap -CMD [ "/opt/osdf/osdfapp.sh", "-x", "osdfapp.py" ] +CMD [ "python", "osdfapp.py" ] diff --git a/docker/osdf/assembly/osdf-files.xml b/docker/osdf/assembly/osdf-files.xml index fc8a864..1b7c349 100644 --- a/docker/osdf/assembly/osdf-files.xml +++ b/docker/osdf/assembly/osdf-files.xml @@ -44,16 +44,15 @@ - - - ${project.build.finalName}.zip - - ${project.build.directory} - / - apps/** + osdf/** + config/** + setup.py + osdfapp.py + requirements.txt + requirements-osdf.txt **/*.pyc diff --git a/pom.xml b/pom.xml index 42e1f93..6570f55 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,7 @@ http://maven.apache.org/POM/4.0.0 "> ${maven.build.timestamp} ${project.version} nexus3.onap.org:10003 + osdf-base ${osdf.docker.repository}/onap/optf-osdf ${osdf.docker.repository}/onap/optf-opteng @@ -111,6 +112,26 @@ http://maven.apache.org/POM/4.0.0 "> true 1.23 + + ${osdf.base.image} + optf-base + + true + + latest + + + ${project.basedir}/docker/osdf-lib-base/Dockerfile + + ${project.basedir}/docker/osdf-lib-base/assembly/osdf-lib-files.xml + onap-osdf-tm + + + ${project.version} + ${project.repo} + + + ${image.namespace} optf-osdf -- cgit 1.2.3-korg