diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bd01e22edd47c77eb35b09eff7b41198f1463721..8ae10fb420e5c853a1b2b129380a52dffff24a5c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,16 +25,14 @@ build testing docker image:
   only:
     - develop
   tags:
-    - build
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
+    - build_docker
+  variables:
+    DOCKER_TAG: testing
   script:
-    - mkdir -p /kaniko/.docker
-    - export
-    - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json
-    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:testing
-    - echo Image docker neogeo/geocontrib-front:testing livrée
+    - cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
+    - docker-compose build geocontrib-front
+    - docker-compose push geocontrib-front
+    - echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
 
 deploy testing docker image:
   stage: deploy
@@ -52,36 +50,30 @@ build stable docker image:
   only:
     - master
   tags:
-    - build
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
+    - build_docker
+  variables:
+    DOCKER_TAG: latest
   script:
-    - mkdir -p /kaniko/.docker
-    - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json
-
-    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:latest
-    - echo Image docker neogeo/geocontrib:latest livrée
-
+    - cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
+    - docker-compose build geocontrib-front
+    - docker-compose push geocontrib-front
+    - echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
 
 build tagged docker image:
   stage: build
   only:
     - tags
   tags:
-    - build
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
+    - build_docker
+  variables:
+    DOCKER_TAG: $CI_COMMIT_TAG
   script:
     # Don't build tag id package.json as wrong version
     - grep "\"version\":.\"$CI_COMMIT_TAG\"" package.json
-    - mkdir -p /kaniko/.docker
-    - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json
-
-    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:$CI_COMMIT_TAG
-    - echo Image docker neogeo/geocontrib-front:$CI_COMMIT_TAG livrée
-
+    - cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
+    - docker-compose build geocontrib-front
+    - docker-compose push geocontrib-front
+    - echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
 
 sonarqube-check:
   image:
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 18f164891441f5ecbbaa1bbf86ba056f826570f6..a250dbb007c4693ba0d4c4e033be50cc1ed6fa28 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -2,7 +2,7 @@
 version: "3"
 services:
   geocontrib-front:
-    image: neogeo/geocontrib-front:geocontrib-latest
+    image: neogeo/geocontrib-front:${DOCKER_TAG:-testing}
     build: .
     environment:
       - BASE_URL=${BASE_URL}