diff --git a/.github/ci-settings.xml b/.github/ci-settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c2019e0c17ddb8bd18f4d7341c95fe82e85c1c0c
--- /dev/null
+++ b/.github/ci-settings.xml
@@ -0,0 +1,37 @@
+<!-- A MAVEN SETTINGS FILE TO BE USED IN CI -->
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
+
+    <servers>
+        <server>
+            <id>github</id>
+            <username>${env.GITHUBLOGIN}</username>
+            <password>${env.GITHUBPASSWORD}</password>
+        </server>
+        <server>
+            <id>dockerhub</id>
+            <username>${env.DOCKER_USERNAME}</username>
+            <password>${env.DOCKER_PASSWORD}</password>
+        </server>
+        <server>
+            <id>github.pages</id>
+            <username>git</username>
+            <configuration>
+                <scmVersionType>branch</scmVersionType>
+                <scmVersion>gh-pages</scmVersion>
+            </configuration>
+        </server>
+    </servers>
+
+    <profiles>
+        <profile>
+            <id>sonar</id>
+            <properties>
+                <sonar.host.url>http://compute-lsis-2:9000</sonar.host.url>
+                <sonar.login>${env.SONAR_TOKEN}</sonar.login>
+            </properties>
+        </profile>
+    </profiles>
+
+</settings>
diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index 1224b828105e26e20e03e1993ac614e64bb7cb51..a6f95498b8cab97f4f4097cdec711cf1e281c42b 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -14,5 +14,15 @@ jobs:
 
     steps:
     - uses: actions/checkout@v2
-    - name: Build the Docker image
-      run: DOCKER_BUILDKIT=1 docker build . --file ./docker/Dockerfile --tag my-image-name:$(date +%s)
+    - 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
diff --git a/docker-compose.yml b/docker-compose.yml
index 8f7e82db441f24e457f8056f36092cf17753211f..efa6f90f9dec0197342ce0d4559b2fa839491062 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,7 +4,7 @@ services:
     build:
       context: .
       dockerfile: docker/Dockerfile
-    image: brunoe/samplejee91restapp
+    image: brunoe/samplejee91
     environment:
       - ADMIN_PASSWORD=admin
     ports:
diff --git a/mvn.sh b/mvn.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5d5927ed39eb9bad56fff346d19ef9c5981e11d2
--- /dev/null
+++ b/mvn.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+docker run \
+          --env GITHUBLOGIN="$GITHUBLOGIN" \
+          --env GITHUBPASSWORD="$GITHUBPASSWORD" \
+          --env SONAR_TOKEN="$SONAR_TOKEN" \
+          --volume ~/.m2:/var/maven/.m2 \
+          --volume ~/.sonar:/var/maven/.sonar \
+          --volume ~/.config:/var/maven/.config \
+          --volume ~/.ssh:/home/user/.ssh \
+          --volume ~/.gitconfig:/home/user/.gitconfig \
+          --volume "$(pwd)":/usr/src/mymaven \
+          --workdir /usr/src/mymaven \
+          --rm \
+          --env PUID="$(id -u)" -e PGID="$(id -g)" \
+          --env MAVEN_CONFIG=/var/maven/.m2 \
+          brunoe/maven:3.8.1-jdk-16 \
+          runuser --user user --group user -- mvn -B -e -T 1C -Duser.home=/var/maven --settings /usr/src/mymaven/.github/ci-settings.xml "$@"
\ No newline at end of file