diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6c7acced45752ac0907b8ecdb868ba025fbcc919..5a2e6fcdf7bc9c12f504f35d4948767658e40a47 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,8 @@
 stages:
+  - purge
   - e2e-test
 
-e2e-testing:
+purge-old-containers:
   image: docker
   services:
     - docker:dind
@@ -9,16 +10,25 @@ e2e-testing:
   tags: ['docker']
   only:
     - testing
-  before_script:
+  script:
     - echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USER" --password-stdin
     - docker stop back
     - docker stop postgis
     - docker rm back
     - docker rm postgis
+  after_script:
+    - docker logout
   allow_failure: true
+
+e2e-testing:
+  image: docker
+  services:
+    - docker:dind
+  stage: e2e-test
+  tags: ['docker']
+  only:
+    - testing
   script:
     - docker build -t backend .
     - docker run --name back -p 8080:5000 -d backend
     - docker run --name postgis -p 5432:5432 -d -v ./docker:/docker-entrypoint-initdb.d/ mdillon/postgis
-  after_script:
-    - docker logout