diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index 07af7d2b302b62d259e0e3e77aaa30a37b887df6..fb2e064d9899c7c5a0ca243d10d49cbb853850d9 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -18,14 +18,10 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Build the Docker image for branch ${GITHUB_REF##*/}
-      run: DOCKER_BUILDKIT=1 docker build . --file ./docker/Dockerfile --tag brunoe/samplejee91::${GITHUB_REF##*/}
-
-
-  maven-sonar:
-    runs-on: [ self-hosted, Linux ]
-    needs: maven-build
-    # Develop branch only
-    # if: github.ref == 'refs/heads/develop'
-    steps:
-      - name: Launch a sonar analysis
-        run: ./mvn.sh -D sonar.branch.name=${GITHUB_REF#refs/heads/} --activate-profiles sonar sonar:sonar && mvn --activate-profiles sonar -pl . sonar-quality-gate:check
+      run: DOCKER_BUILDKIT=1 docker build . \
+            --env GITHUBLOGIN="$GITHUBLOGIN" \
+            --env GITHUBPASSWORD="$GITHUBPASSWORD" \
+            --env SONAR_HOST="$SONAR_HOST" \
+            --env SONAR_TOKEN="$SONAR_TOKEN" \
+            --file ./docker/Dockerfile \
+            --tag brunoe/samplejee91:${GITHUB_REF##*/}
diff --git a/docker-compose.yml b/docker-compose.yml
index efa6f90f9dec0197342ce0d4559b2fa839491062..87c0deecd0a7e2eb6b47c6087a21b9bcd0b7297f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,6 +2,11 @@ version: '3'
 services:
   jakartaEE:
     build:
+      args:
+        - GITHUBLOGIN
+        - GITHUBPASSWORD
+        - SONAR_HOST
+        - SONAR_TOKEN
       context: .
       dockerfile: docker/Dockerfile
     image: brunoe/samplejee91
diff --git a/docker/Dockerfile b/docker/Dockerfile
index fb51ae3f296d5fdee7eaaf0ddef4ad5aef6d825f..8cf64ea7041b48430bbbc2e48f97333c464ec156 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,13 +1,27 @@
-# syntax=docker/dockerfile:1.3
-
 ### First we build the application in docker in a controlled env
 FROM maven:3.8.4-eclipse-temurin-11 as build
 WORKDIR /app
+
+#see https://www.jrebel.com/blog/how-to-speed-up-your-maven-build
+# see https://www.baeldung.com/jvm-tiered-compilation
+ENV MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
+#ENV MAVEN_CLI_OPTS="-T 1C --settings /usr/share/maven/ref/settings-docker.xml -B"
+ENV MAVEN_CLI_OPTS="--settings /usr/share/maven/ref/settings-docker.xml -B"
+
+COPY docker/settings-docker.xml /usr/share/maven/ref/
+
 # COPY pom.xml /app/pom.xml
 COPY . /app/
 
 RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \
-	mvn -B verify
+	mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true verify
+
+RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \
+    if [ "$SONAR_TOKEN" ] ; then \
+      mvn $MAVEN_CLI_OPTS -D sonar.branch.name=${GITHUB_REF#refs/heads/} \
+        --activate-profiles sonar sonar:sonar && \
+      mvn $MAVEN_CLI_OPTS --activate-profiles sonar -pl . sonar-quality-gate:check ; \
+    fi
 
 ### Then we add the builded war to a JEE server.
 #FROM payara/server-full:5.2021.9-jdk11 as server
diff --git a/.github/ci-settings.xml b/docker/settings-docker.xml
similarity index 93%
rename from .github/ci-settings.xml
rename to docker/settings-docker.xml
index c2019e0c17ddb8bd18f4d7341c95fe82e85c1c0c..fc533f816970b25ea2f095c6420d57129b2f3eb6 100644
--- a/.github/ci-settings.xml
+++ b/docker/settings-docker.xml
@@ -28,7 +28,7 @@
         <profile>
             <id>sonar</id>
             <properties>
-                <sonar.host.url>http://compute-lsis-2:9000</sonar.host.url>
+                <sonar.host.url>${env.SONAR_HOST}</sonar.host.url>
                 <sonar.login>${env.SONAR_TOKEN}</sonar.login>
             </properties>
         </profile>