diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 50591fb7cb40bb82d85846bbef45abce09bba48f..047779ce49781f8eb63fd9bda24e61efdb3d4ab7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,6 +11,9 @@ variables:
   ECLIPSE_TEMURIN_IMAGE_NAME: "eclipse-temurin"
   ECLIPSE_TEMURIN_IMAGE: $CI_REGISTRY_IMAGE/$ECLIPSE_TEMURIN_IMAGE_NAME
 
+  MAVEN_GRAALVM_IMAGE_NAME: "maven-graalvm"
+  MAVEN_GRAALVM_IMAGE: $CI_REGISTRY_IMAGE/$MAVEN_GRAALVM_IMAGE_NAME
+
   NODE_IMAGE_NAME: "node"
   NODE_IMAGE: $CI_REGISTRY_IMAGE/$NODE_IMAGE_NAME
 
@@ -36,6 +39,20 @@ build_eclipse_temurin:
   only:
     - main
 
+build_graalvm:
+  stage: build
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  tags:
+    - docker
+  script:
+    - export
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --context $CI_PROJECT_DIR/maven-graalvm --dockerfile $CI_PROJECT_DIR/maven-graalvm/Dockerfile --destination ${MAVEN_GRAALVM_IMAGE}:21
+  only:
+    - main
+
 build_node:
   stage: build
   image: