diff --git a/.env b/.env
new file mode 100644
index 0000000000000000000000000000000000000000..612149e840705717222b4913c450cc1088c53194
--- /dev/null
+++ b/.env
@@ -0,0 +1,3 @@
+COMPOSE_PROJECT_NAME=gitlab-runner
+DOCKER_HOST=ssh://host01.shore.co.il
+RUNNER_NAME=host01.shore.co.il
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..7ea9f974cfe16378d3aed3721462796cae79ec6e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,9 @@
+FROM gitlab/gitlab-runner:alpine-v13.6.0-rc1
+RUN apk add --no-cache --update docker
+COPY --chown=root:root entrypoint /entrypoint0
+ENV DOCKER_VOLUMES=/var/run/docker.sock:/var/run/docker.sock \
+    RUNNER_EXECUTOR=docker \
+    DOCKER_PULL_POLICY=if-not-present
+ENTRYPOINT [ "/entrypoint0" ]
+CMD [ "run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner" ]
+HEALTHCHECK CMD gitlab-runner list 2>&1 | grep -qF "$CI_SERVER_URL"
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3843269c2591203b542195700743b711978c1ca8
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,23 @@
+---
+version: '3.7'
+services:
+  runner:
+    build:
+      context: ./
+    environment:
+      CI_SERVER_URL: "${CI_SERVER_URL:-https://git.shore.co.il}"
+      DOCKER_IMAGE: docker:19.03
+      REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}"
+      RUNNER_NAME: "${RUNNER_NAME}"
+    image: adarnimrod/gitlab-runner
+    restart: always
+    volumes:
+      - config:/etc/gitlab-runner
+      - /var/run/docker.sock:/var/run/docker.sock
+
+volumes:
+  config:
+
+networks:
+  default:
+    name: shore
diff --git a/entrypoint b/entrypoint
new file mode 100755
index 0000000000000000000000000000000000000000..3e8616dbef67cdfe2a8091cb120fd958fd51bb0b
--- /dev/null
+++ b/entrypoint
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -eux
+
+gitlab-runner register --non-interactive
+eval exec /entrypoint "$@"