diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2a8edcd34cbafb801fa55fc517058a27c12cc706..d385dd1b36e7c536e31aa56e2e001be54f235047 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,32 +34,24 @@ build_docker_from_cache:
     - docker build -t $CONTAINER_TEST_IMAGE .
     - docker push $CONTAINER_TEST_IMAGE
 
-test_python2_with_coverage:
+test:
   stage: test
   variables:
     OMPI_MCA_btl_vader_single_copy_mechanism: none
   script:
-    - mpiexec -n 2 --bind-to none pytest -q test
-    - pytest -q --cov=nifty5 test
+    - mpiexec -n 2 --bind-to none pytest-3 -q test
+    - pytest-3 -q --cov=nifty5 test
     - >
-      python -m coverage report --omit "*plotting*,*distributed_do*"
+      python3 -m coverage report --omit "*plotting*,*distributed_do*"
     - >
-      python -m coverage report --omit "*plotting*,*distributed_do*" | grep TOTAL | awk '{ print "TOTAL: "$4; }'
-
-test_python3:
-  stage: test
-  variables:
-    OMPI_MCA_btl_vader_single_copy_mechanism: none
-  script:
-    - pytest-3 -q
-    - mpiexec -n 2 --bind-to none pytest-3 -q
+      python3 -m coverage report --omit "*plotting*,*distributed_do*" | grep TOTAL | awk '{ print "TOTAL: "$4; }'
 
 pages:
   stage: release
   before_script:
     - ls
   script:
-    - python setup.py install --user -f
+    - python3 setup.py install --user -f
     - sh docs/generate.sh
     - mv docs/build/ public/
   artifacts:
@@ -69,7 +61,6 @@ pages:
   - NIFTy_4
 
 before_script:
-  - python setup.py install --user -f
   - python3 setup.py install --user -f
 
 run_ipynb:
@@ -80,7 +71,6 @@ run_ipynb:
 run_getting_started_1:
   stage: demo_runs
   script:
-    - python demos/getting_started_1.py
     - python3 demos/getting_started_1.py
     - mpiexec -n 2 --bind-to none python3 demos/getting_started_1.py 2> /dev/null
   artifacts:
@@ -90,7 +80,6 @@ run_getting_started_1:
 run_getting_started_2:
   stage: demo_runs
   script:
-    - python demos/getting_started_2.py
     - python3 demos/getting_started_2.py
     - mpiexec -n 2 --bind-to none python3 demos/getting_started_2.py 2> /dev/null
   artifacts:
@@ -100,7 +89,6 @@ run_getting_started_2:
 run_getting_started_3:
   stage: demo_runs
   script:
-    - python demos/getting_started_3.py
     - python3 demos/getting_started_3.py
   artifacts:
     paths:
@@ -109,7 +97,6 @@ run_getting_started_3:
 run_bernoulli:
   stage: demo_runs
   script:
-    - python demos/bernoulli_demo.py
     - python3 demos/bernoulli_demo.py
   artifacts:
     paths:
@@ -118,7 +105,6 @@ run_bernoulli:
 run_curve_fitting:
   stage: demo_runs
   script:
-    - python demos/polynomial_fit.py
     - python3 demos/polynomial_fit.py
   artifacts:
     paths:
diff --git a/Dockerfile b/Dockerfile
index 29f2936ccf5490a787654e52e6317a979f54d6ae..2d49915c22c060048a1d75ed3202d518f8699597 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,27 +5,23 @@ RUN apt-get update && apt-get install -y \
     git \
     # Packages needed for NIFTy
     libfftw3-dev \
-    python python-pip python-dev python-future python-scipy cython \
     python3 python3-pip python3-dev python3-future python3-scipy cython3 \
     # Documentation build dependencies
     python-sphinx python-sphinx-rtd-theme python-numpydoc \
     # Testing dependencies
-    python-nose python-coverage python-parameterized python-pytest python-pytest-cov \
     python3-nose python3-coverage python3-parameterized python3-pytest python3-pytest-cov \
     # Optional NIFTy dependencies
-    openmpi-bin libopenmpi-dev python-mpi4py python3-mpi4py \
+    openmpi-bin libopenmpi-dev python3-mpi4py \
     # Packages needed for NIFTy
-  && pip install pyfftw \
   && pip3 install pyfftw \
   # Optional NIFTy dependencies
-  && pip install git+https://gitlab.mpcdf.mpg.de/ift/pyHealpix.git \
   && pip3 install git+https://gitlab.mpcdf.mpg.de/ift/pyHealpix.git \
   # Testing dependencies
   && rm -rf /var/lib/apt/lists/*
 
 # Needed for demos to be running
-RUN apt-get update && apt-get install -y python-matplotlib python3-matplotlib \
-  && python3 -m pip install --upgrade pip && python3 -m pip install jupyter && python -m pip install --upgrade pip && python -m pip install jupyter \
+RUN apt-get update && apt-get install -y python3-matplotlib \
+  && python3 -m pip install --upgrade pip && python3 -m pip install jupyter \
   && rm -rf /var/lib/apt/lists/*
 
 # Set matplotlib backend