diff --git a/cmake b/cmake
index 4bf6c7fc970aa5ef35627f2c7cca79eb9275bec8..9296127f1fdfba0e34f3d0ecb6cb23ee220aa02a 160000
--- a/cmake
+++ b/cmake
@@ -1 +1 @@
-Subproject commit 4bf6c7fc970aa5ef35627f2c7cca79eb9275bec8
+Subproject commit 9296127f1fdfba0e34f3d0ecb6cb23ee220aa02a
diff --git a/docker/ubuntu/Dockerfile b/docker/ubuntu/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..1cce334eeb046f7cb26fc1cba03c26acc49600b6
--- /dev/null
+++ b/docker/ubuntu/Dockerfile
@@ -0,0 +1,24 @@
+FROM ubuntu:22.04
+
+RUN apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -qqy \
+    build-essential \
+    cmake \
+    cmake-curses-gui \
+    vim \
+    gdb \
+    git \
+    libboost-all-dev \
+    libeigen3-dev \
+    liburdfdom-dev \
+    python3-numpy
+
+WORKDIR /src
+RUN git clone --recursive -j2 -b devel https://github.com/stack-of-tasks/eigenpy
+
+ENV CTEST_OUTPUT_ON_FAILURE=ON
+ENV CTEST_PROGRESS_OUTPUT=ON
+ENV CTEST_PARALLEL_LEVEL=2
+
+WORKDIR /src/eigenpy/build
+RUN cmake -DPYTHON_EXECUTABLE=$(which python3) -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON ..
+RUN make -sj2
diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp
index a71c59f474a6482d6e6abc8d4434c03cd9abc7cb..e1bab2adebc08d5ff3b21f1589f6c2c68b5ed014 100644
--- a/include/eigenpy/details.hpp
+++ b/include/eigenpy/details.hpp
@@ -19,11 +19,12 @@
 namespace eigenpy {
 
 template <typename EigenType,
-          typename BaseType = typename get_eigen_base_type<EigenType>::type>
+          typename BaseType = typename get_eigen_base_type<EigenType>::type,
+          typename Scalar = typename EigenType::Scalar>
 struct expose_eigen_type_impl;
 
-template <typename MatType>
-struct expose_eigen_type_impl<MatType, Eigen::MatrixBase<MatType> > {
+template <typename MatType, typename Scalar>
+struct expose_eigen_type_impl<MatType, Eigen::MatrixBase<MatType>, Scalar> {
   static void run() {
     if (check_registration<MatType>()) return;
 
@@ -40,8 +41,9 @@ struct expose_eigen_type_impl<MatType, Eigen::MatrixBase<MatType> > {
 };
 
 #ifdef EIGENPY_WITH_TENSOR_SUPPORT
-template <typename TensorType>
-struct expose_eigen_type_impl<TensorType, Eigen::TensorBase<TensorType> > {
+template <typename TensorType, typename Scalar>
+struct expose_eigen_type_impl<TensorType, Eigen::TensorBase<TensorType>,
+                              Scalar> {
   static void run() {
     if (check_registration<TensorType>()) return;