aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrishnaa96 <krishna.moorthy6@wipro.com>2021-06-24 16:12:32 +0530
committerkrishnaa96 <krishna.moorthy6@wipro.com>2021-06-24 16:16:01 +0530
commitabff9d4966b12beeafcf8366712d2e27555fd2a2 (patch)
tree8352661c14073f2fa9eef64e60e199fcc690c517
parent1176c145328a61f314ccba63c4083d2d1990d4dc (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/Dockerfile59
-rw-r--r--docker/opteng/assembly/osdf-files.xml5
-rw-r--r--docker/osdf-lib-base/Dockerfile49
-rw-r--r--docker/osdf-lib-base/assembly/osdf-lib-files.xml43
-rw-r--r--docker/osdf/Dockerfile50
-rw-r--r--docker/osdf/assembly/osdf-files.xml13
-rw-r--r--pom.xml21
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>
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 ">
<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>