diff --git a/docker/Dockerfile.template b/docker/Dockerfile.template
index 791b48217e920b2518df1fd5b4be11fdb03522c7..1fffcefc8befb6002d86ee34176e20da5771660b 100644
--- a/docker/Dockerfile.template
+++ b/docker/Dockerfile.template
@@ -35,40 +35,26 @@ opam-2.1 update -y
 
 RUN sudo apt update  && \
     sudo apt install apt-utils wget && \
-    sudo apt install -yy git wget gfortran cmake protobuf-compiler libprotobuf-dev libboost-all-dev libopenblas-dev zip && \
+    sudo apt install -yy git wget gfortran cmake protobuf-compiler libprotobuf-dev libboost-all-dev libopenblas-dev zip python3.10-dev python3.10-venv && \
     sudo apt clean && \
     sudo rm -rf /var/lib/apt/lists/
 
 ENV PATH "/home/opam/.local/bin:$PATH"
 
-# Python Conda
-
-ENV SHACONDA "aef279d6baea7f67940f16aad17ebe5f6aac97487c7c03466ff01f4819e5a651"
-
-RUN wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -O ~/miniconda.sh
-
-RUN SHAFILE=$(sha256sum ~/miniconda.sh | awk '{print $1}') && if [ "$SHAFILE" != "$SHACONDA" ]; then echo "Mismatch between SHA256SUM of downloaded script and expected script, aborting installation."; echo "The expected SHA256SUM is $SHACONDA, but the SHA256SUM of downloaded script is $SHAFILE."; exit 1; fi
-
-RUN /bin/bash ~/miniconda.sh  -b && rm ~/miniconda.sh
-
-ENV PATH "/home/opam/miniconda3/bin:$PATH"
-
-RUN conda init bash && conda create -n python_caisar_env python=3.10.9
-
-SHELL ["conda", "run", "-n", "python_caisar_env", "/bin/bash", "-c"]
-
 # External provers
 
+RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
+
 ## Pyrat
 
 RUN git clone https://git.frama-c.com/pub/pyrat.git && \
 git -C pyrat checkout 43c7389e5ce203b445ad3c7bfdcbf6bf408f3214
 
-RUN pip --default-timeout=1000 install -r pyrat/requirements.txt
+RUN /usr/bin/python3.10 -m pip --default-timeout=1000 install -r pyrat/requirements.txt
 
 ENV PATH "/home/opam/pyrat/:$PATH"
 
-RUN echo -e "#!/usr/bin/sh \n exec /home/opam/miniconda3/envs/python_caisar_env/bin/python /home/opam/pyrat/pyrat.pyc \"\$@\"" > /home/opam/pyrat/pyrat
+RUN echo -e "#!/usr/bin/sh \n exec /usr/bin/python3.10 /home/opam/pyrat/pyrat.pyc \"\$@\"" > /home/opam/pyrat/pyrat
 RUN chmod u+x /home/opam/pyrat/pyrat
 
 RUN pyrat -h
@@ -90,7 +76,6 @@ cmake --build .
 
 ENV PATH "/home/opam/Marabou/build:$PATH"
 
-
 ## SAVer
 
 RUN git clone https://github.com/svm-abstract-verifier/saver.git && \
@@ -109,7 +94,7 @@ RUN git clone https://github.com/stanleybak/nnenum.git && \
 git -C nnenum checkout cf7c0e72c13543011a7ac3fbe0f5c59c3aafa77e
 
 RUN cd nnenum && \
-pip3 install -r requirements.txt
+/usr/bin/python3.10 -m pip install -r requirements.txt
 
 ENV PYTHONPATH "$PYTHONPATH:/home/opam/nnenum/src"
 
@@ -122,14 +107,13 @@ git -C alpha-beta-CROWN checkout 7b3d507caf40a5f42d99f6894373526c6fd615b7
 # https://github.com/Verified-Intelligence/alpha-beta-CROWN/blob/main/vnncomp_scripts/install_tool_general.sh,
 # and removing dependencies that are already in PyRAT
 # dependency set: pytorch, torchvision, torchaudio, tqdm,
-# pandas
+# pandas, protobuf
 # DNNV and onnx2pytorch set on a specific commit
 # WARNING: Result in Pillow version and networkx version
 # different than what is expected by PyRAT and/or nnenum!
 
 RUN cd alpha-beta-CROWN && \
-conda install --yes cudatoolkit=11.1 mkl=2020.0 pyyaml packaging appdirs protobuf sortedcontainers -c pytorch-lts -c nvidia -c gurobi && \
-pip install --no-input --no-cache-dir onnx onnxruntime git+https://github.com/KaidiXu/onnx2pytorch.git@fe7281b9b6c8c28f61e72b8f3b0e3181067c7399 git+https://github.com/dlshriver/DNNV.git@6ab81fff8b83e5e7d5d964e409d092190368c8f1
+/usr/bin/python3.10 -m pip install --no-input --no-cache-dir onnx onnxruntime git+https://github.com/KaidiXu/onnx2pytorch.git@fe7281b9b6c8c28f61e72b8f3b0e3181067c7399 git+https://github.com/dlshriver/DNNV.git@6ab81fff8b83e5e7d5d964e409d092190368c8f1 pyyaml packaging appdirs sortedcontainers mkl==2019.0 pyyaml appdirs
 
 ENV PYTHONPATH "$PYTHONPATH:/home/opam/alpha-beta-CROWN/complete_verifier"
 
diff --git a/docker/Makefile b/docker/Makefile
index d23909fed48417e4489a22e3f7e116a22ae9a953..ad671f21caf939d146222d4ab9e2ce780f7dcdc2 100644
--- a/docker/Makefile
+++ b/docker/Makefile
@@ -23,6 +23,7 @@
 .PHONY: pub push FORCE
 
 OCAML_VERSION?=4.13
+UBUNTU_VERSION?=22.04
 
 all: Dockerfile
 	@echo "You may want to consider adding ARGS=--no-cache to force"
@@ -33,7 +34,7 @@ push: all
 	@echo "You may need to execute 'docker login' beforehand."
 	docker push laiser/caisar:pub
 
-SHA_DOCKER=$(shell docker manifest inspect ocaml/opam:ubuntu-ocaml-$(OCAML_VERSION) | jq '.manifests| .[] | select(.platform.architecture == "amd64") | .digest' --raw-output)
+SHA_DOCKER=$(shell docker manifest inspect ocaml/opam:ubuntu-$(UBUNTU_VERSION)-ocaml-$(OCAML_VERSION) | jq '.manifests| .[] | select(.platform.architecture == "amd64") | .digest' --raw-output)
 SHA_DOCKER:=$(or $(SHA_DOCKER),sha256:9d471148a7acdaba15caa139710f89ca8668a191c0052eb1c80cb9729e337c40)
 
 CAISAR_COMMIT?=$(shell git rev-parse HEAD)