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