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