diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e46b48 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM arm32v7/python:3.6-jessie + +ENV RPIRF_VERSION 0.9.6 + +# Setup workdir +ENV WORKDIR /rpi-433rc +RUN mkdir -p ${WORKDIR} && \ + cd ${WORKDIR} + +COPY ./entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +# Install necessary dependencies +RUN pip3 install rpi-rf==${RPIRF_VERSION} + +# Install rest-api wrapper for rpi-rf +# Not yet implemented + +# Entrypoint defaults to bash +ENTRYPOINT ["/entrypoint.sh"] +CMD ["bash"] + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fe6eab2 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +.PHONY: clean build + +RELEASE_IMAGE_NAME = rpi-433rc +CURRENT_TAG = latest + +CONTAINER_NAME = rpi-433rc + +build: + docker build -t $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) . + +shell: build + docker run -it --rm --name $(CONTAINER_NAME) --privileged --cap-add SYS_RAWIO --device=/dev/mem $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) bash + +run: build + docker run --rm --name $(CONTAINER_NAME) --privileged --cap-add SYS_RAWIO --device=/dev/mem $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) + +sniff: build + docker run --rm -it --name $(CONTAINER_NAME) --privileged --cap-add SYS_RAWIO --device=/dev/mem $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) sniff + +clean: + docker ps -a | grep '$(CONTAINER_NAME)' | awk '{print $$1}' | xargs docker rm + if [ $(shell docker image inspect $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) > /dev/null 2>/dev/null ; echo $$?) -eq 0 ] ; then docker rmi $(RELEASE_IMAGE_NAME):$(CURRENT_TAG) ; fi + diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..a82a367 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +case ${1} in + sniff) + shift + exec rpi-rf_receive "$@" + ;; + serve) + echo "Serving via rest-api is not implemented" + break + ;; + *) + exec "$@" + ;; +esac +