diff --git a/ci/docker_images/ubuntu/disco/Dockerfile b/ci/docker_images/ubuntu/disco/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..b786b49db02d899ff4dded2a887158999aab7626
--- /dev/null
+++ b/ci/docker_images/ubuntu/disco/Dockerfile
@@ -0,0 +1,256 @@
+# Test docker for gitlab-ci
+FROM ubuntu:disco
+MAINTAINER Jean-Baptiste.Keck@imag.fr
+
+# upgrade initial image
+ENV DEBIAN_FRONTEND noninteractive
+RUN apt-get update
+RUN apt-get full-upgrade -y
+
+# get build tools and required libraries
+RUN apt-get install -y expat
+RUN apt-get install -y unzip
+RUN apt-get install -y xz-utils
+RUN apt-get install -y automake
+RUN apt-get install -y libtool
+RUN apt-get install -y pkg-config
+RUN apt-get install -y cmake
+RUN apt-get install -y git
+RUN apt-get install -y vim
+RUN apt-get install -y ssh
+RUN apt-get install -y gcc
+RUN apt-get install -y gfortran
+RUN apt-get install -y cython
+RUN apt-get install -y swig
+RUN apt-get install -y lsb-core
+RUN apt-get install -y cpio
+RUN apt-get install -y libnuma1
+RUN apt-get install -y libpciaccess0
+RUN apt-get install -y libreadline-dev
+RUN apt-get install -y libboost-all-dev
+RUN apt-get install -y libblas-dev
+RUN apt-get install -y liblapack-dev
+RUN apt-get install -y libcgal-dev
+RUN apt-get install -y libatlas-base-dev
+RUN apt-get install -y libopenblas-dev
+RUN apt-get install -y libgfortran3
+RUN apt-get install -y libgcc1
+RUN apt-get install -y libopenmpi-dev
+RUN apt-get install -y libhdf5-openmpi-dev
+RUN apt-get install -y libfftw3-dev
+RUN apt-get install -y libfftw3-mpi-dev
+RUN apt-get install -y libgmp-dev
+RUN apt-get install -y libmpfr-dev
+RUN apt-get install -y libmpc-dev
+RUN apt-get install -y libsparsehash-dev
+RUN apt-get install -y libcairo-dev
+RUN apt-get install -y libcairomm-1.0-dev
+RUN apt-get install -y python
+RUN apt-get install -y python-dev
+RUN apt-get install -y python-pip
+RUN apt-get install -y python-tk
+RUN apt-get install -y opencl-headers
+RUN apt-get install -y ocl-icd-libopencl1
+RUN apt-get install -y clinfo
+
+# python packages
+RUN pip install --upgrade pip
+RUN pip install --upgrade setuptools
+RUN pip install --upgrade backports.weakref
+RUN pip install --upgrade cffi
+RUN pip install --upgrade wheel
+RUN pip install --upgrade pytest
+RUN pip install --upgrade numpy
+RUN pip install --upgrade scipy
+RUN pip install --upgrade sympy
+RUN pip install --upgrade matplotlib
+RUN pip install --upgrade mpi4py
+RUN CC=mpicc HDF5_MPI="ON" pip install --upgrade --no-binary=h5py h5py
+RUN pip install --upgrade gmpy2
+RUN pip install --upgrade psutil
+RUN pip install --upgrade py-cpuinfo
+RUN pip install --upgrade Mako
+RUN pip install --upgrade subprocess32
+RUN pip install --upgrade editdistance
+RUN pip install --upgrade portalocker
+RUN pip install --upgrade colors.py
+RUN pip install --upgrade tee
+RUN pip install --upgrade primefac
+RUN pip install --upgrade pycairo
+RUN pip install --upgrade weave
+RUN pip install --upgrade argparse_color_formatter
+RUN pip install --upgrade numba
+
+# For documentation
+# RUN pip install --upgrade sphinx
+# RUN pip install --upgrade sphinxcontrib-bibtex
+# RUN pip install --upgrade sphinx_bootstrap_theme
+# RUN pip install --upgrade strip-hints
+# RUN cd /tmp && git clone https://github.com/sphinx-contrib/doxylink.git && cd doxylink/sphinxcontrib/doxylink \
+#  && mv doxylink.py doxylink.py3 && strip-hints doxylink.py3 > doxylink.py && rm doxylink.py3 \
+#  && mv parsing.py parsing.py3 && strip-hints parsing.py3 > parsing.py && rm parsing.py3 \
+#  && cd ../.. && python setup.py install
+
+
+# scitools (python-scitools does not exist on ubuntu:bionic)
+RUN cd /tmp                                      \
+ && git clone https://github.com/hplgit/scitools \
+ && cd scitools                                  \
+ && pip install .                                \
+ && cd -                                         \
+ && rm -Rf /tmp/scitools
+
+# patchelf
+RUN cd /tmp                                     \
+ && git clone https://github.com/NixOS/patchelf \
+ && cd patchelf                                 \
+ && ./bootstrap.sh                              \
+ && ./configure                                 \
+ && make                                        \
+ && make install                                \
+ && cd -                                        \
+ && rm -Rf /tmp/patchelf
+
+RUN  wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -                          \
+ && echo 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main'     >> /etc/apt/sources.list \
+ && echo 'deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic main' >> /etc/apt/sources.list \
+ && apt-get update                                                                                 \
+ && apt-get install --assume-yes llvm-3.9 clang-3.9 libllvm3.9 libclang-3.9-dev
+
+# Intel OpenCl
+RUN cd /tmp                                                                                 \
+&& mkdir intel                                                                              \
+&& cd intel                                                                                 \
+&& wget http://registrationcenter-download.intel.com/akdlm/irc_nas/12556/opencl_runtime_16.1.2_x64_rh_6.4.0.37.tgz \
+&& tar -xvzf opencl_runtime_16.1.2_x64_rh_6.4.0.37.tgz                                      \
+&& cd opencl_runtime_16.1.2_x64_rh_6.4.0.37                                                 \
+&& ls -la                                                                                   \
+&& sed -i "s/ACCEPT_EULA=decline/ACCEPT_EULA=accept/g" "silent.cfg"                         \
+&& ./install.sh --silent ./silent.cfg                                                       \
+&& cd /tmp                                                                                  \
+&& rm -Rf /tmp/intel
+
+# Fix OpenCl ICD
+RUN ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/x86_64-linux-gnu/libOpenCL.so
+RUN ldconfig
+
+# pyopencl
+RUN cd /tmp                                       \
+&& pip install pybind11                           \
+&& git clone https://github.com/inducer/pyopencl  \
+&& cd pyopencl                                    \
+&& git submodule update --init                    \
+&& ./configure.py                                 \
+&& make                                           \
+&& pip install --upgrade .                        \
+&& cd -                                           \
+&& rm -Rf /tmp/pyopencl
+
+# oclgrind
+RUN apt-get install --assume-yes --allow-unauthenticated llvm-6.0 clang-6.0 libllvm6.0 libclang-6.0-dev
+RUN cd /tmp                                                           \
+ && git clone https://github.com/jrprice/Oclgrind                     \
+ && cd Oclgrind                                                       \
+ && mkdir build                                                       \
+ && cd build                                                          \
+ && cmake -DCMAKE_BUILD_TYPE=Release ..                               \
+ && make                                                              \
+ && make install                                                      \
+ && cd -                                                              \
+ && rm -Rf /tmp/Oclgrind
+
+# clpeak
+RUN cd /tmp                                               \
+    && git clone https://github.com/krrishnarraj/clpeak   \
+    && cd clpeak/                                         \
+    && mkdir build                                        \
+    && cd build/                                          \
+    && cmake ..                                           \
+    && make                                               \
+    && mv clpeak /usr/local/bin/                          \
+    && cd -                                               \
+    && rm -Rf /tmp/clpeak
+
+# clFFT
+RUN cd /tmp                                                           \
+ && ln -s /usr/local/lib /usr/local/lib64                             \
+ && git clone https://github.com/clMathLibraries/clFFT                \
+ && cd clFFT                                                          \
+ && cd src                                                            \
+ && mkdir build                                                       \
+ && cd build                                                          \
+ && cmake -DCMAKE_BUILD_TYPE=Release ..                               \
+ && make                                                              \
+ && make install                                                      \
+ && cd -                                                              \
+ && rm -Rf /tmp/clFFT
+
+# gpyFFT
+RUN cd /tmp                                      \
+ && git clone https://github.com/geggo/gpyfft    \
+ && cd gpyfft                                    \
+ && pip install .                                \
+ && cd -                                         \
+ && rm -Rf /tmp/gpyfft
+
+# python graphtools
+RUN cd /tmp                                       \
+ && wget https://downloads.skewed.de/graph-tool/graph-tool-2.26.tar.bz2 \
+ && tar -xvjf graph-tool-2.26.tar.bz2             \
+ && cd graph-tool-2.26                            \
+ && ./autogen.sh                                  \
+ && mkdir pycairo                                 \
+ && find /usr/ -name 'pycairo.h' -exec cp {} ./pycairo/pycairo.h \; \
+ && CPPFLAGS=-I. ./configure                      \
+ && CPPFLAGS=-I. make -j16                        \
+ && make install                                  \
+ && cd -                                          \
+ && rm -Rf /tmp/graph-tool-2.26
+
+# clang 6 for hysop build test
+RUN apt-get install -y clang
+
+# pyfftw (with R2R transforms - experimental branch)
+RUN cd /tmp                                      \
+ && git clone https://github.com/drwells/pyFFTW  \
+ && cd pyFFTW                                    \
+ && git checkout r2r-try-two                     \
+ && sed -i 's/\(fftw3[fl]\?_\)threads/\1omp/g' setup.py \
+ && pip install .                                \
+ && cd -                                         \
+ && rm -Rf /tmp/pyFFTW
+
+# python-flint
+RUN cd /tmp \
+  && wget http://flintlib.org/flint-2.5.2.tar.gz \
+  && tar -xvzf flint-2.5.2.tar.gz \
+  && cd flint-2.5.2 \
+  && ./configure \
+  && make -j16 \
+  && make install \
+  && cd - \
+  && rm -Rf flint-2.5.2 \
+  && wget https://github.com/fredrik-johansson/arb/archive/2.16.0.tar.gz \
+  && tar -xvzf 2.16.0.tar.gz \
+  && cd arb-2.16.0 \
+  && ./configure \
+  && make -j16 \
+  && make install \
+  && cd - \
+  && rm -Rf arb-2.16.0 \
+  && git clone https://github.com/fredrik-johansson/python-flint \
+  && cd python-flint \
+  && pip install . \
+  && cd - \
+  && rm -Rf python-flint
+ 
+
+# ensure all libraries are known by the runtime linker
+RUN ldconfig
+
+# clean cached packages
+RUN rm -rf /var/lib/apt/lists/*
+RUN rm -rf $HOME/.cache/pip/*
+RUN rm -rf /tmp/*
+
+CMD ["/bin/bash"]