diff --git a/.dockerignore b/.dockerignore
new file mode 120000
index 0000000000000000000000000000000000000000..3e4e48b0b5fe6b468434d6767749b399319f2da2
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+.gitignore
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..be935c6fa91dba1a6f4e3e724fdfbbc89d344b3e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+FROM debian:bookworm-slim
+
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
+    make \
+	python3
+
+WORKDIR /opt/rwm
+COPY rwm.py Makefile ./
+RUN make install
+
+ENTRYPOINT ["/opt/rwm/rwm.py"]
diff --git a/Makefile b/Makefile
index 89da0d0f8f7c1015198fd774667231e4371c4326..69ca3f961e210281e524c08873c549834349aac8 100644
--- a/Makefile
+++ b/Makefile
@@ -50,3 +50,9 @@ microceph: microceph-cleanup microceph-service
 runner:
 	apt-get install -y ansible
 	ansible-playbook scripts/playbook_gitlab_runner.yml
+
+docker-build:
+	sh scripts/docker.sh build
+
+docker-push:
+	sh scripts/docker.sh push
diff --git a/scripts/docker.sh b/scripts/docker.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e3dfdb911c22648532bcdac8cfc80cdc271780c6
--- /dev/null
+++ b/scripts/docker.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+# release helper
+
+REGISTRY_URL="gitlab-registry.cesnet.cz"
+IMAGE_NAME="radoslav_bodo/rwm"
+
+BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match)
+if [ -z "$BRANCH" ]; then
+    echo "Error: Unable to determine current branch."
+    exit 1
+fi
+
+case "$1" in
+    login)
+        docker login "$REGISTRY_URL"
+    ;;
+
+    build)
+        docker build -t "${REGISTRY_URL}/${IMAGE_NAME}:${BRANCH}" .
+    ;;
+
+    push)
+	    docker push "${REGISTRY_URL}/${IMAGE_NAME}:${BRANCH}"
+    ;;
+
+    pull)
+        docker image pull "${REGISTRY_URL}/${IMAGE_NAME}:${BRANCH}"
+    ;;
+
+    run)
+        shift
+        docker run --rm -v "$(pwd)/rwm.conf:/opt/rwm/rwm.conf" -it "${REGISTRY_URL}/${IMAGE_NAME}:${BRANCH}" "$@"
+    ;;
+
+    *)
+        echo "invalid command"
+        exit 1
+    ;;
+esac
\ No newline at end of file