diff --git a/substrate/docker/build.sh b/substrate/docker/build.sh
index f0a4560ff8feaff02ca729653ceefe17fcbbc22d..d4befd864e4e828c9d734223ed8d4a6559fefbf0 100755
--- a/substrate/docker/build.sh
+++ b/substrate/docker/build.sh
@@ -3,9 +3,8 @@ set -e
 
 pushd .
 
-# The following line ensure we run from the project root
-PROJECT_ROOT=`git rev-parse --show-toplevel`
-cd $PROJECT_ROOT
+# Change to the project root and supports calls from symlinks
+cd $(dirname "$(dirname "$(realpath "${BASH_SOURCE[0]}")")")
 
 # Find the current version from Cargo.toml
 VERSION=`grep "^version" ./bin/node/cli/Cargo.toml | egrep -o "([0-9\.]+)"`
@@ -14,7 +13,7 @@ GITREPO=substrate
 
 # Build the image
 echo "Building ${GITUSER}/${GITREPO}:latest docker image, hang on!"
-time docker build -f ./docker/substrate_builder.Dockerfile -t ${GITUSER}/${GITREPO}:latest .
+time DOCKER_BUILDKIT=1 docker build -f ./docker/substrate_builder.Dockerfile -t ${GITUSER}/${GITREPO}:latest .
 docker tag ${GITUSER}/${GITREPO}:latest ${GITUSER}/${GITREPO}:v${VERSION}
 
 # Show the list of available images for this repo
diff --git a/substrate/docker/substrate_builder.Dockerfile.dockerignore b/substrate/docker/substrate_builder.Dockerfile.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..dccfeb651ad8d2603dfc0568aaa349cacd53a6b0
--- /dev/null
+++ b/substrate/docker/substrate_builder.Dockerfile.dockerignore
@@ -0,0 +1,11 @@
+doc
+**target*
+.idea/
+.git/
+.github/
+Dockerfile
+.dockerignore
+.local
+.env*
+HEADER-GPL3
+LICENSE-GPL3