diff --git a/docker/osmclient/Dockerfile b/docker/osmclient/Dockerfile
index e5b3acd..932bcdc 100644
--- a/docker/osmclient/Dockerfile
+++ b/docker/osmclient/Dockerfile
@@ -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 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 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
 
-ENV OSM_SOL005=True
-ENV OSM_HOSTNAME=nbi:9999
+# 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
+
+ENTRYPOINT [ "/bin/bash" ]
\ No newline at end of file
diff --git a/docker/osmclient/charm.sh b/docker/osmclient/charm.sh
new file mode 100755
index 0000000..75e7a47
--- /dev/null
+++ b/docker/osmclient/charm.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+# Workaround for charm build
+
+function build() {
+  echo "$@"
+  charm-build "$@"
+}
+
+params="$@"
+delete=build
+
+params=("${params[@]/$delete}")
+
+build $params
diff --git a/docker/osmclient/pyangbind.patch b/docker/osmclient/pyangbind.patch
new file mode 100644
index 0000000..3077299
--- /dev/null
+++ b/docker/osmclient/pyangbind.patch
@@ -0,0 +1,46 @@
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:50:57.876027148 -0400
+--- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:51:11.772022417 -0400
+*************** limitations under the License.
+*** 22,27 ****
+--- 22,28 ----
+  from __future__ import unicode_literals
+
+  import collections
++ from six.moves import collections_abc
+  import copy
+  import uuid
+  from decimal import Decimal
+*************** def TypedListType(*args, **kwargs):
+*** 372,378 ****
+    if not isinstance(allowed_type, list):
+      allowed_type = [allowed_type]
+
+!   class TypedList(collections.MutableSequence):
+      _pybind_generated_by = "TypedListType"
+      _list = list()
+
+--- 373,379 ----
+    if not isinstance(allowed_type, list):
+      allowed_type = [allowed_type]
+
+!   class TypedList(collections_abc.MutableSequence):
+      _pybind_generated_by = "TypedListType"
+      _list = list()
+
diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile
index 34afcfc..49a1e4c 100644
--- a/docker/tests/Dockerfile
+++ b/docker/tests/Dockerfile
@@ -41,7 +41,6 @@
     git=1:2.34.* \
     iputils-ping=3:* \
     jq=1.6* \
-    libssl-dev=3.0.* \
     libmagic1=1:5.*
 
 ARG OSM_TESTS_URL
