diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2a952d71e683449bd53c5e84fd9f0491d1a20bf9..5aa034937218a65a13200dea0c8d7771c42c5f11 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,6 +7,8 @@ stages:
 #
 
 .ensembl_test_template:
+  image: dockerhub.ebi.ac.uk/ensembl-infrastructure/ensembl-ci-docker-images:${PERL_VERSION}
+
   services:
     - mysql:5.6
 
@@ -46,8 +48,8 @@ stages:
 test:perl5.14-sqlite:
   stage: test
   extends: .ensembl_test_template
-  image: perl:5.14
   variables:
+    PERL_VERSION: "5.14"
     COVERALLS: "false"
     DB: "sqlite"
   script:
@@ -56,8 +58,8 @@ test:perl5.14-sqlite:
 test:perl5.30-mysql:
   stage: test
   extends: .ensembl_test_template
-  image: perl:5.30
   variables:
+    PERL_VERSION: "5.30"
     # Note: relies on the secret variable COVERALLS_REPO_TOKEN for report uploads to work
     COVERALLS: "true"
     DB: "mysql"