diff --git a/.env b/.env
index 56ebe4f4056af0239d7c3cae56a89cf07d2a16a5..fe4e81ed3c29cdaa2769932d2a352b81cbb23d4d 100644
--- a/.env
+++ b/.env
@@ -1,2 +1,2 @@
-POSTGRES_USER=myappdba 
-POSTGRES_PASSWORD=ndfndsf13sff
+DB_USER=myappdba
+DB_PASSWORD=ndfndsf13sff
diff --git a/Dockerfile b/Dockerfile
index 8bbcb682b1f572e2922529b5b873a311f9cd838a..f5f2d03c3e7bb22a7ba8e69f71be18c7eb82b0d6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,12 +6,32 @@ WORKDIR /myproject
 COPY pom.xml . 
 COPY src src
 
-RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \ 
+RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \
 	mvn -B package
 
-FROM eclipse-temurin:11.0.13_8-jre-alpine
-COPY --from=build /myproject/target/*-with-dependencies.jar \
+# Create a custom Java runtime from the dev env.
+RUN MODULES=`jdeps  --ignore-missing-deps --list-deps target/DemoCI-1.0-SNAPSHOT-withdependencies.jar| grep -v -e jdk.compiler -e sun.security.krb5 | tr '\n' ','| tr -d "[:space:]"|head -c -1`  \
+    && $JAVA_HOME/bin/jlink \
+         --add-modules  $MODULES\
+         --strip-debug \
+         --no-man-pages \
+         --no-header-files \
+         --compress=2 \
+         --output /javaruntime
+
+FROM debian:bullseye-slim
+# Copy the JRE from the dev build env
+ENV JAVA_HOME=/opt/java/openjdk
+ENV PATH "${JAVA_HOME}/bin:${PATH}"
+COPY --from=build /javaruntime $JAVA_HOME
+
+# Copy the uber Jar from the dev build env
+COPY --from=build /myproject/target/*-withdependencies.jar \
 		  /myapp.jar
 
-ENTRYPOINT ["java", "-jar"]
-CMD ["/myapp.jar"]
+# Adds the wait script (see variable in docker-compose.yml)
+ENV WAIT_VERSION 2.7.2
+ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
+RUN chmod +x /wait
+
+ENTRYPOINT ["/bin/sh", "-c", "/wait && java -jar /myapp.jar"]
diff --git a/compose_build_run.sh b/compose_build_run.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f0dd276cf11c9423a01d2396e14ac685a33529df
--- /dev/null
+++ b/compose_build_run.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+./docker_env.sh
+
+COMPOSE_DOCKER_CLI_BUILD=1 \
+DOCKER_BUILDKIT=1  \
+  docker-compose up --build
diff --git a/docker-compose.yml b/docker-compose.yml
index 495e505b69390c307f2901b8539f3e88a4a1843a..eeccfde038460fe4970e2eac2e6a5d05b59a73de 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,25 +1,30 @@
 services:
   app:
     build: .
-    image: bruno/democi
+    image: ${DOCKER_REPO_NAME}/${IMAGE_NAME}:${IMAGE_TAG}
     depends_on:
-      - postgres
-    networks:
-      - datanet
+      - db
     environment:
-      POSTGRES_USER: ${PG_USER:-demodba}
-      POSTGRES_PASSWORD: ${PG_PASSWORD:-secret}
+      # The host and TCP port to wait for
+      # Wait host must be installed in the docker image (see Dockerfile)
+      WAIT_HOSTS: db:5432
 
-  postgres:
+      DB_URL: ${DB_URL:-jdbc:postgresql://db:5432/}${DB_NAME:-demodb}
+      DB_USER: ${DB_USER:-demodba}
+      DB_PASSWORD: ${DB_PASSWORD:-secret}
+      DB_NAME: ${DB_NAME:-demodb}
+
+  db:
     restart: always
     image: postgres:14
     environment:
-      POSTGRES_USER: ${PG_USER:-demodba}
-      POSTGRES_PASSWORD: ${PG_PASSWORD:-secret}
+      POSTGRES_USER: ${DB_USER:-demodba}
+      POSTGRES_PASSWORD: ${DB_PASSWORD:-secret}
+      POSTGRES_DB: ${DB_NAME:-demodb}
     volumes:
       - pg_data:/var/lib/postgresql/data
-#    ports:
-#      - "5432:5432"
-    networks:
-      - datanet
+    ports:
+      - "5432:5432"
 
+volumes:
+  pg_data:
\ No newline at end of file
diff --git a/docker_build.sh b/docker_build.sh
index ccab3b220be7248a5734f78018bd3c371ee47fd2..ea62729d9a80f624aa6f925a525b7e1cf98983b0 100755
--- a/docker_build.sh
+++ b/docker_build.sh
@@ -1,2 +1,4 @@
-source ./docker_env.sh
-DOCKER_BUILDKIT=1 docker build -t ${DOCKER_REPO_NAME}/${IMAGE_NAME} .
+#!/bin/bash
+./docker_env.sh
+DOCKER_BUILDKIT=1 \
+  docker build -t ${DOCKER_REPO_NAME}/${IMAGE_NAME}:${IMAGE_TAG} .
diff --git a/docker_env.sh b/docker_env.sh
index ac6f550b11a2d753ee4003a02e58a0fc4fda17df..acdb72fcbb3ed09758a67699ddedc0dd5d2a33b3 100755
--- a/docker_env.sh
+++ b/docker_env.sh
@@ -1,3 +1,3 @@
 DOCKER_REPO_NAME=brunoe
 IMAGE_NAME=`echo ${PWD##*/}| tr '[:upper:]' '[:lower:]'`
-
+IMAGE_TAG=`git rev-parse --abbrev-ref HEAD`
diff --git a/docker_push.sh b/docker_push.sh
index 4acd476e13440c23822342fd560386c836648ff5..d398d883b10b9738918ad7460dc3eaad2003985f 100755
--- a/docker_push.sh
+++ b/docker_push.sh
@@ -1,2 +1,3 @@
-source ./docker_env.sh
+#!/bin/bash
+./docker_env.sh
 docker push ${DOCKER_REPO_NAME}/${IMAGE_NAME}
diff --git a/docker_run.sh b/docker_run.sh
index adf1426d153fedf1c7daeb64683d3f252fb4db85..ac4c776b881295a2cad2e0adbc6e2ac97e29b6f4 100755
--- a/docker_run.sh
+++ b/docker_run.sh
@@ -1,2 +1,3 @@
+#!/bin/bash
 source ./docker_env.sh
 docker run --rm -it ${DOCKER_REPO_NAME}/${IMAGE_NAME}
diff --git a/pom.xml b/pom.xml
index a9277d8848b31ff9ff464f64d2c295beec0374c6..102741ce81cf1679df7468ce41d1c38392e41af9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,9 +8,8 @@
     <artifactId>DemoCI</artifactId>
     <version>1.0-SNAPSHOT</version>
 
-    <name>MyApp3</name>
-    <!-- FIXME change it to the project's website -->
-    <url>http://www.example.com</url>
+    <name>DemoCI</name>
+    <url>https://github.com/ebpro/DemoCI</url>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -26,6 +25,18 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <version>42.3.0</version>
+        </dependency>
+
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
@@ -47,14 +58,18 @@
                             <goal>shade</goal>
                         </goals>
                         <configuration>
+                            <minimizeJar>false</minimizeJar>
                             <transformers>
                                 <transformer
                                     implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                     <mainClass>fr.univtln.bruno.App</mainClass>
+                               </transformer>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+                                    <resource>META-INF/services/java.sql.Driver</resource>
                                 </transformer>
                             </transformers>
                             <shadedArtifactAttached>true</shadedArtifactAttached>
-                            <shadedClassifierName>with-dependencies</shadedClassifierName> <!-- Any name that makes sense -->
+                            <shadedClassifierName>withdependencies</shadedClassifierName>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/src/main/java/fr/univtln/bruno/App.java b/src/main/java/fr/univtln/bruno/App.java
index a27217a7d633bce9317a8b234a446054b8d83657..d8e4dbd2a602eee0dc6313e675ed20120b5fd4a1 100644
--- a/src/main/java/fr/univtln/bruno/App.java
+++ b/src/main/java/fr/univtln/bruno/App.java
@@ -1,13 +1,31 @@
 package fr.univtln.bruno;
 
-/**
- * Hello world!
- *
- */
-public class App 
-{
-    public static void main( String[] args )
-    {
-        System.out.println( "Hello World!" );
+import lombok.extern.java.Log;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Map;
+import java.util.Optional;
+
+@Log
+public class App {
+
+    public static void main(String[] args) throws ClassNotFoundException {
+        Map<String, String> env = System.getenv();
+        final String DB_NAME = Optional.ofNullable(env.get("DB_NAME")).orElse("demodb");
+        final String DB_URL = Optional.ofNullable(env.get("DB_URL")).orElse("jdbc:postgresql://localhost:5432/" + DB_NAME);
+        final String DB_USER = Optional.ofNullable(env.get("DB_USER")).orElse("demodba");
+        final String DB_PASSWORD = Optional.ofNullable(env.get("DB_PASSWORD")).orElse("secret");
+
+        log.info(DB_URL+" "+DB_USER+" "+DB_PASSWORD);
+
+        try (Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
+            DatabaseMetaData database = connection.getMetaData();
+            log.info(database.getDatabaseProductName() + " " + database.getDatabaseProductVersion());
+        } catch (SQLException throwables) {
+            throwables.printStackTrace();
+        }
     }
 }