diff --git a/Dockerfile b/Dockerfile
index 6faf956f159d1ae5bb739283c106eb2d9ceae269..f7927e2fff38f5af18dfb8145f2f7bd4017ecc85 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,19 +1,10 @@
-# This Dockerfile encapsulate the MIP portal  backend application for development purposes.
+# This Dockerfile encapsulate the MIP portal backend application for development purposes.
+# We use it to bootstrap the generation of the Hibernate mapping file and the application jar.
 
 FROM maven:3-jdk-8
 
-RUN apt-get update && apt-get install -y wget
-RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz
-RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.2.0.tar.gz
+COPY ./src/docker/init/build-in-docker.sh /build-in-docker.sh
 
-RUN mkdir -p /opt/portal/ \
-    && echo -n "#!/bin/sh\n/usr/bin/java -DconfigFile=/opt/portal/config/portal.properties -jar /opt/portal/lib/mip.jar" > /opt/portal/mip.sh \
-    && chmod +x /opt/portal/mip.sh
-EXPOSE 8080
+VOLUME /portal/
 
-VOLUME /opt/portal/config/
-VOLUME /opt/portal/lib/
-
-WORKDIR /opt/portal/
-
-CMD ["/usr/local/bin/dockerize", "-wait", "tcp://portaldb:5432", "/opt/portal/mip.sh"]
+CMD ["/build-in-docker.sh"]
diff --git a/build.sh b/build.sh
index 70d44580f727cf609ce37e1242ec8e1590381da1..c468fde19796460203a36c70b2d786f485886a4e 100755
--- a/build.sh
+++ b/build.sh
@@ -1,8 +1,13 @@
 #!/bin/bash -e
 if groups $USER | grep &>/dev/null '\bdocker\b'; then
-  CAPTAIN="captain"
+  DOCKER_COMPOSE="docker-compose"
 else
-  CAPTAIN="sudo captain"
+  DOCKER_COMPOSE="sudo docker-compose"
 fi
 
-$CAPTAIN build
+$DOCKER_COMPOSE --file=docker-compose.init.yml --project-name=portal-backend-init up
+
+echo "Need to set the current user as owner of the files generated in target directory..."
+sudo chown -R $USER:$USER ./target
+
+echo "Done"
diff --git a/captain.yml b/captain.yml
deleted file mode 100644
index 26ede42e0551060fb31f6c6a7297cde79c20ac75..0000000000000000000000000000000000000000
--- a/captain.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-portal-backend:
-  build: Dockerfile
-  image: portal-backend
-  pre:
-    - echo "Build portal-backend"
-    - docker-compose up -d portaldb
-    - mvn package
-  post:
-    - echo "Finished building portal-backend"
diff --git a/docker-compose.init.yml b/docker-compose.init.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6a59c3a35389eceee522789ce05f2a07bf3942d8
--- /dev/null
+++ b/docker-compose.init.yml
@@ -0,0 +1,20 @@
+# Build the application and regenerate the Hibernate mapping
+
+portaldb:
+  image: postgres:9.4.5
+  container_name: portaldb
+  ports:
+    - "55432:5432"
+  volumes:
+    - ./src/test/db/sql:/docker-entrypoint-initdb.d/
+  environment:
+    POSTGRES_PASSWORD: test
+
+portal-backend:
+  build: .
+  volumes:
+    - ./:/portal/
+  links:
+    - portaldb
+  ports:
+    - "8080:8080"
diff --git a/docker-compose.yml b/docker-compose.yml
index 63763938188058f08179e90228b87254c2ca6b30..95bec5bc97ca43e33fec832b98764914b84393fa 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,6 +1,7 @@
 
 portaldb:
   image: postgres:9.4.5
+  container_name: portaldb
   ports:
     - "55432:5432"
   volumes:
@@ -9,7 +10,7 @@ portaldb:
     POSTGRES_PASSWORD: test
 
 portal-backend:
-  build: .
+  build: .src/docker/build
   volumes:
     - ./src/test/docker/:/opt/portal/config/
     - ./target/:/opt/portal/lib/
diff --git a/src/docker/build/Dockerfile b/src/docker/build/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6faf956f159d1ae5bb739283c106eb2d9ceae269
--- /dev/null
+++ b/src/docker/build/Dockerfile
@@ -0,0 +1,19 @@
+# This Dockerfile encapsulate the MIP portal  backend application for development purposes.
+
+FROM maven:3-jdk-8
+
+RUN apt-get update && apt-get install -y wget
+RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz
+RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.2.0.tar.gz
+
+RUN mkdir -p /opt/portal/ \
+    && echo -n "#!/bin/sh\n/usr/bin/java -DconfigFile=/opt/portal/config/portal.properties -jar /opt/portal/lib/mip.jar" > /opt/portal/mip.sh \
+    && chmod +x /opt/portal/mip.sh
+EXPOSE 8080
+
+VOLUME /opt/portal/config/
+VOLUME /opt/portal/lib/
+
+WORKDIR /opt/portal/
+
+CMD ["/usr/local/bin/dockerize", "-wait", "tcp://portaldb:5432", "/opt/portal/mip.sh"]
diff --git a/src/docker/init/build-in-docker.sh b/src/docker/init/build-in-docker.sh
new file mode 100755
index 0000000000000000000000000000000000000000..aff4c2e6c8eaabb623c62b16339b0dde606ead82
--- /dev/null
+++ b/src/docker/init/build-in-docker.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+echo ">>> Building inside Docker"
+cd /portal
+
+mvn package
+
+echo ">>> Press Ctrl+C to stop, build is complete"