diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a47b5d122a094c72ea71f9a07b7a8a8afc25bd63..ef8c8f372b8ee0e36c3039c210a95d508d1dd82a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,7 +7,11 @@ build-ubuntu-18.04:
   before_script:
     - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" "${CI_REGISTRY}" --password-stdin
   script:
-    - docker build --no-cache --pull -t "${CI_REGISTRY}/${CI_PROJECT_PATH,,}:ubuntu-18.04" ubuntu-18.04
+    - GPU_DRIVER_VERSION="$(dpkg-query --showformat='${Version}' --show 'nvidia-driver-*')"
+    - echo $GPU_DRIVER_VERSION
+    - if [[ -f $XDG_RUNTIME_DIR/rf_docker-gpu-driver-version ]] && [[ "$(cat $XDG_RUNTIME_DIR/rf_docker-gpu-driver-version)" == "$GPU_DRIVER_VERSION" ]]; then OPTS=''; else OPTS='--no-cache'; fi
+    - echo -n $GPU_DRIVER_VERSION > $XDG_RUNTIME_DIR/rf_docker-gpu-driver-version
+    - docker build $OPTS --pull -t "${CI_REGISTRY}/${CI_PROJECT_PATH,,}:ubuntu-18.04" ubuntu-18.04
     - docker push "${CI_REGISTRY}/${CI_PROJECT_PATH,,}:ubuntu-18.04"
   after_script:
     - docker logout "${CI_REGISTRY}"