diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c38f56968aed1f151139f7f15990ec993d94057e..a561ba5c11d29c66a79e88fb34a46029940fa27f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,8 +70,11 @@ build-testenv:
   image: docker:20.10
   stage: setup
   timeout: 3h
-  only:
-    - schedules
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "schedule"
+    - if: $CI_PIPELINE_SOURCE != "schedule"
+      changes:
+        - src/test/docker/Dockerfile
   script:
     - cd src/test/docker
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY