Support of Ubuntu22 in osmclient docker image
[osm/devops.git] / docker / osmclient / Dockerfile
index e5b3acd..932bcdc 100644 (file)
@@ -15,7 +15,7 @@
 # limitations under the License.
 #######################################################################################
 
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
 
 ARG APT_PROXY
 RUN if [ ! -z $APT_PROXY ] ; then \
@@ -25,32 +25,34 @@ RUN if [ ! -z $APT_PROXY ] ; then \
 
 RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
     DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-    gcc=4:9.3.* \
-    python3=3.8.* \
-    python3-dev=3.8.* \
-    python3-pip=20.0.2* \
-    python3-setuptools=45.2.* \
-    curl=7.68.*
+    gcc=4:11.* \
+    python3=3.10.* \
+    python3-dev=3.10.* \
+    python3-pip=22.0.* \
+    curl=7.81.* \
+    && rm -rf /var/lib/apt/lists/*
 
-RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
-    DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-    libssl-dev=1.1.*
+#######################################################################################
+# End of common preparation
 
-ARG PYTHON3_OSMCLIENT_URL
 ARG PYTHON3_OSM_IM_URL
-
-RUN curl $PYTHON3_OSMCLIENT_URL -o osmclient.deb
-RUN dpkg -i ./osmclient.deb
+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
+
+COPY pyangbind.patch ./
+RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < ./pyangbind.patch
 
 #######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
 
 ARG APT_PROXY
 RUN if [ ! -z $APT_PROXY ] ; then \
@@ -60,13 +62,43 @@ RUN if [ ! -z $APT_PROXY ] ; then \
 
 RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
     DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-    python3-minimal=3.8.* \
+    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.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/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages  /usr/local/lib/python3.8/dist-packages
+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" ]
\ No newline at end of file