diff --git a/Dockerfile b/Dockerfile
index 42b45db615e88d7ae99a62a02fae7a4040e9dd5b..cddba17af8f2a1f3d5e7a54d6e319452378e2284 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,7 +7,7 @@ COPY ./package.json ./pnpm-lock.yaml /app/
 WORKDIR /app
 
 # build deps
-FROM base as deps
+FROM base AS deps
 RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
 
 # datapod image
diff --git a/scripts/docker-build.sh b/scripts/docker-build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2940396bb9d3022644badc01033defc54ecda9fd
--- /dev/null
+++ b/scripts/docker-build.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+set -e
+
+# Get the version number from package.json
+version_tag=$(grep -oP '"version": "\K[^"]+' package.json)
+
+# --- datapod
+docker buildx build -f Dockerfile -t duniter-datapod .
+
+# Tag with version and 'latest'
+docker image tag duniter-datapod h30x/duniter-datapod:$version_tag
+docker image tag duniter-datapod h30x/duniter-datapod:latest
+
+# Push both
+docker image push h30x/duniter-datapod:$version_tag
+docker image push h30x/duniter-datapod:latest
+
+# --- kubo
+docker buildx build -f Dockerfile.Kubo -t datapod-kubo .
+
+# Tag with version and 'latest'
+docker image tag datapod-kubo h30x/datapod-kubo:$version_tag
+docker image tag datapod-kubo h30x/datapod-kubo:latest
+
+# Push both
+docker image push h30x/datapod-kubo:$version_tag
+docker image push h30x/datapod-kubo:latest
+
+# --- hasura
+docker buildx build -f Dockerfile.Hasura -t datapod-hasura .
+
+# Tag with version and 'latest'
+docker image tag datapod-hasura h30x/datapod-hasura:$version_tag
+docker image tag datapod-hasura h30x/datapod-hasura:latest
+
+# Push both
+docker image push h30x/datapod-hasura:$version_tag
+docker image push h30x/datapod-hasura:latest
\ No newline at end of file