diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a3e9fbdb946305a010b97042dba4239dabc52418..8745d23059d16ac02bea21d204b5ac0878453456 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -29,14 +29,15 @@ repos:
       - id: hadolint
         name: Hadolint Dockerfile linter
         description: Dockerfile linter, validate inline bash, written in Haskell
-        minimum_pre_commit_version: '0.18.0'
-        language: docker_image
-        entry: adarnimrod/docker-pre-commit hadolint
         types: [dockerfile]
+        language: script
+        entry: pre-commit-docker-wrapper
+        args: [hadolint]
       - id: dockerfile-lint
         name: dockerfile-lint
         description: A rule based 'linter' for Dockerfiles
         minimum_pre_commit_version: '0.18.0'
-        language: docker_image
-        entry: adarnimrod/docker-pre-commit dockerfile-lint
         types: [dockerfile]
+        language: script
+        entry: pre-commit-docker-wrapper
+        args: [hadolint]
diff --git a/pre-commit-docker-wrapper b/pre-commit-docker-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..2f139f93860fd206f2a7c26081d7bc569e365751
--- /dev/null
+++ b/pre-commit-docker-wrapper
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -eux
+
+docker build -t docker-pre-commit .
+docker run -v "$PWD:/repo:ro" -w /repo --user "$(id -u):$(id -g)" --rm docker-pre-commit "$@"