Feature 11037 Installation of ingress controller in OSM community installer
[osm/devops.git] / docker / osmclient / Dockerfile
index 7c46007..643ff3e 100644 (file)
 # limitations under the License.
 #######################################################################################
 
-FROM ubuntu:18.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
+
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+    echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+    echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+    fi
 
 RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
     DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-    gcc=4:7.4.0-1ubuntu2.3 \
-    python3=3.6.7-1~18.04 \
-    python3-dev=3.6.7-1~18.04 \
-    python3-setuptools=39.0.1-2 \
-    curl=7.58.0-2ubuntu3.14 \
-    libcurl4-openssl-dev=7.58.0-2ubuntu3.14 \
-    libssl-dev=1.1.1-1ubuntu2.1~18.04.9 && \
-    python3 -m easy_install pip==21.0.1
+    gcc=4:11.* \
+    python3=3.10.* \
+    python3-dev=3.10.* \
+    python3-pip=22.0.* \
+    curl=7.81.* \
+    && rm -rf /var/lib/apt/lists/*
 
-ARG PYTHON3_OSMCLIENT_URL
-ARG PYTHON3_OSM_IM_URL
+#######################################################################################
+# End of common preparation
 
-RUN curl $PYTHON3_OSMCLIENT_URL -o osmclient.deb
-RUN dpkg -i ./osmclient.deb
+ARG PYTHON3_OSM_IM_URL
+ARG PYTHON3_OSMCLIENT_URL
 
 RUN curl $PYTHON3_OSM_IM_URL -o osm_im.deb
 RUN dpkg -i ./osm_im.deb
 
+RUN curl $PYTHON3_OSMCLIENT_URL -o osmclient.deb
+RUN dpkg -i ./osmclient.deb
+
 RUN pip3 install \
-    -r /usr/lib/python3/dist-packages/osmclient/requirements.txt \
-    -r /usr/lib/python3/dist-packages/osm_im/requirements.txt
+    -r /usr/lib/python3/dist-packages/osm_im/requirements.txt \
+    -r /usr/lib/python3/dist-packages/osmclient/requirements.txt
+
+#######################################################################################
+FROM ubuntu:22.04 as FINAL
 
-FROM ubuntu:18.04 as FINAL
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+    echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+    echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+    fi
 
 RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
-    DEBIAN_FRONTEND=noninteractive apt-get --yes install python3-minimal=3.6.7-1~18.04
+    DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+    python3-minimal=3.10.* \
+    && rm -rf /var/lib/apt/lists/*
 
 COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.6/dist-packages  /usr/local/lib/python3.6/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common preparation
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+    DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+    libmagic1=1:5.* \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN rm -f /etc/apt/apt.conf.d/proxy.conf
+
+COPY --from=INSTALL /usr/bin/osm /usr/bin/osm
+COPY charm.sh /usr/sbin/charm
+
+# Creating the user for the app
+RUN groupadd -g 1000 appuser && \
+    useradd -u 1000 -g 1000 -d /app appuser && \
+    mkdir -p /app/osmclient && \
+    chown -R appuser:appuser /app
+
+WORKDIR /app/osmclient
+
+# Changing the security context
+USER appuser
+
+ENV LC_ALL=C.UTF-8
+ENV LANG=C.UTF-8
+
+# The following ENV can be added with "docker run -e xxx' to configure
+ENV OSM_HOSTNAME    nbi:9999
+ENV OSM_USER        admin
+ENV OSM_PASSWORD    admin
+ENV OSM_PROJECT     admin
 
-ENV OSM_SOL005=True
-ENV OSM_HOSTNAME=nbi:9999
+ENTRYPOINT [ "/bin/bash" ]