diff options
author | krishnaa96 <krishna.moorthy6@wipro.com> | 2021-06-24 16:12:32 +0530 |
---|---|---|
committer | krishnaa96 <krishna.moorthy6@wipro.com> | 2021-06-24 16:16:01 +0530 |
commit | abff9d4966b12beeafcf8366712d2e27555fd2a2 (patch) | |
tree | 8352661c14073f2fa9eef64e60e199fcc690c517 | |
parent | 1176c145328a61f314ccba63c4083d2d1990d4dc (diff) |
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 <krishna.moorthy6@wipro.com>
Change-Id: I1b2185781e187526bae114ad718c4758d373cee5
-rw-r--r-- | docker/opteng/Dockerfile | 59 | ||||
-rw-r--r-- | docker/opteng/assembly/osdf-files.xml | 5 | ||||
-rw-r--r-- | docker/osdf-lib-base/Dockerfile | 49 | ||||
-rw-r--r-- | docker/osdf-lib-base/assembly/osdf-lib-files.xml | 43 | ||||
-rw-r--r-- | docker/osdf/Dockerfile | 50 | ||||
-rw-r--r-- | docker/osdf/assembly/osdf-files.xml | 13 | ||||
-rw-r--r-- | pom.xml | 21 |
7 files changed, 143 insertions, 97 deletions
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 @@ <fileSet> <includes> <include>runtime/**</include> + <include>osdf/**</include> + <include>config/**</include> + <include>setup.py</include> + <include>solverapp.py</include> </includes> <excludes> <exclude>**/*.pyc</exclude> @@ -50,6 +54,5 @@ </includes> <outputDirectory>/</outputDirectory> </fileSet> - </fileSets> </assembly> 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 @@ +<!-- + 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. + +--> + +<assembly + xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd"> + <id>osdf-lib-files</id> + + <formats> + <format>tar.gz</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + + + <fileSets> + <fileSet> + <includes> + <include>requirements.txt</include> + </includes> + <excludes> + <exclude>**/*.pyc</exclude> + <exclude>**/__pycache__/**</exclude> + </excludes> + <outputDirectory>/</outputDirectory> + </fileSet> + + </fileSets> +</assembly> 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 @@ -46,14 +46,13 @@ <fileSets> <fileSet> <includes> - <include>${project.build.finalName}.zip</include> - </includes> - <directory>${project.build.directory}</directory> - <outputDirectory>/</outputDirectory> - </fileSet> - <fileSet> - <includes> <include>apps/**</include> + <include>osdf/**</include> + <include>config/**</include> + <include>setup.py</include> + <include>osdfapp.py</include> + <include>requirements.txt</include> + <include>requirements-osdf.txt</include> </includes> <excludes> <exclude>**/*.pyc</exclude> @@ -45,6 +45,7 @@ http://maven.apache.org/POM/4.0.0 "> <osdf.build.timestamp>${maven.build.timestamp}</osdf.build.timestamp> <osdf.project.version>${project.version}</osdf.project.version> <osdf.docker.repository>nexus3.onap.org:10003</osdf.docker.repository> + <osdf.base.image>osdf-base</osdf.base.image> <image.namespace>${osdf.docker.repository}/onap/optf-osdf</image.namespace> <opteng.namespace>${osdf.docker.repository}/onap/optf-opteng</opteng.namespace> </properties> @@ -112,6 +113,26 @@ http://maven.apache.org/POM/4.0.0 "> <apiVersion>1.23</apiVersion> <images> <image> + <name>${osdf.base.image}</name> + <alias>optf-base</alias> + <build> + <cleanup>true</cleanup> + <tags> + <tag>latest</tag> + </tags> + + <dockerFile>${project.basedir}/docker/osdf-lib-base/Dockerfile</dockerFile> + <assembly> + <descriptor>${project.basedir}/docker/osdf-lib-base/assembly/osdf-lib-files.xml</descriptor> + <name>onap-osdf-tm</name> + </assembly> + <args> + <MVN_ARTIFACT_VERSION>${project.version}</MVN_ARTIFACT_VERSION> + <REPO>${project.repo}</REPO> + </args> + </build> + </image> + <image> <name>${image.namespace}</name> <alias>optf-osdf</alias> <build> |