diff --git a/scripts/ci/jobs/build_image.yml b/scripts/ci/jobs/build_image.yml
index 00b463b2788390261ec05a24df28c0d6f5367b0a..aa8a2451134e4786f05740232dba635e1ccca723 100644
--- a/scripts/ci/jobs/build_image.yml
+++ b/scripts/ci/jobs/build_image.yml
@@ -1,7 +1,7 @@
 build gcc images:
   stage: .pre
-  only:
-    changes:
+  rules:
+    - changes:
       - ThirdParty/container-maker
       - scripts/ci/jobs/build_image.yml
   tags:
@@ -20,9 +20,10 @@ build gcc images:
 
 build xunit-to-junit image:
   stage: .pre
-  only:
-    changes:
+  rules:
+    - changes:
       - scripts/docker/saxon/**/*
+      - scripts/ci/jobs/build_image.yml
   tags:
     - docker-shell
   variables:
@@ -36,9 +37,10 @@ build xunit-to-junit image:
 
 build pre-commit image:
   stage: .pre
-  only:
-    changes:
+  rules:
+    - changes:
       - scripts/docker/Dockerfile.pre-commit
+      - scripts/ci/jobs/build_image.yml
   tags:
     - docker-shell
   variables:
diff --git a/scripts/docker/Dockerfile.pre-commit b/scripts/docker/Dockerfile.pre-commit
index 3d7d0a536e7ca58e7b064b97e2c752eca80982c8..7ddfafa2fa3d56dde50d7e4efac76d43174be38b 100644
--- a/scripts/docker/Dockerfile.pre-commit
+++ b/scripts/docker/Dockerfile.pre-commit
@@ -1,6 +1,6 @@
 FROM python:slim
 
-RUN pip install pre-commit
+RUN pip install pre-commit==2.4.0
 CMD ["bash"]
 RUN apt-get update \
  && apt-get install -y --no-install-recommends git curl \