diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a00f570e6b8c3664c3be88b1ade63fb278072970..62c583488387d1d8043f1c74a1dbbd031262a548 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -56,14 +56,18 @@ set-variables:
   script:
     - chmod +x ./get-modified-image.sh
     - ./get-modified-image.sh
+  # If the Dockerfile is changed, force the build.
+  # Otherwise, may be triggered manually.
+  rules:
+    - changes:
+      - **/Dockerfile
+      - **/docker-compose.yml
+      when: always
+    - when: manual
   only:
-    changes:
-      - "**/Dockerfile"
-      - "**/docker-compose.yml"
     refs:
       - master
       - dev-ci
-      - dev-sympa
 
 # Build the image that was modified
 build:
@@ -78,9 +82,14 @@ build:
     - docker push $MODIFIED_IMAGE_FULL_TEST
   after_script:
     - docker logout $REGISTRY
+  # If the Dockerfile is changed, force the build.
+  # Otherwise, may be triggered manually.
+  rules:
+    - changes:
+      - **/Dockerfile
+      when: always
+    - when: manual
   only:
-    changes:
-      - "**/Dockerfile"
     refs:
       - master
       - dev-ci
@@ -101,11 +110,14 @@ clair:
     paths:
       - clair-report.json
       - clair.log
-  only:
-    changes:
+  rules:
+    - changes:
       - "**/Dockerfile"
       - "**/docker-compose.yml"
       - "**/clair-whitelist.yml"
+      when: always
+    - when: manual
+  only:
     refs:
       - master
       - dev-ci
@@ -133,10 +145,13 @@ docker-bench-security:
       - report.txt
   after_script:
     - docker logout $REGISTRY
-  only:
-    changes:
+  rules:
+    - changes:
       - "**/Dockerfile"
       - "**/docker-compose.yml"
+      when: always
+    - when: manual
+  only:
     refs:
       - master
       - dev-ci
@@ -155,9 +170,6 @@ push-prod:
   after_script:
     - docker logout $REGISTRY_PROD
   only:
-    changes:
-      - "**/Dockerfile"
-      - "**/docker-compose.yml"
     refs:
       - master
       - dev-ci