From e11d757ee7136ee8b9aee0a5ebb089a002f57936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20K=C3=BCffner?= Date: Sat, 16 Oct 2021 18:42:56 +0200 Subject: [PATCH] klipper works in docker --- config.udoo => config/config.udoo | 0 sparkcube.cfg => config/printer.cfg | 0 docker-compose.yaml | 21 ++++++++++++++++ klipper.Dockerfile | 39 +++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+) rename config.udoo => config/config.udoo (100%) rename sparkcube.cfg => config/printer.cfg (100%) create mode 100644 docker-compose.yaml create mode 100644 klipper.Dockerfile diff --git a/config.udoo b/config/config.udoo similarity index 100% rename from config.udoo rename to config/config.udoo diff --git a/sparkcube.cfg b/config/printer.cfg similarity index 100% rename from sparkcube.cfg rename to config/printer.cfg diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..47439cc --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,21 @@ +version: '3.4' + +services: + klipper: + image: klipper:latest + build: + args: + VERSION: 319c36df52eb016667d13ab006cae3752d0212e7 + dockerfile: klipper.Dockerfile + context: . + target: klippy + container_name: klipper + restart: unless-stopped + volumes: + - ./config:/opt/cfg + - run:/opt/run + devices: + - /dev/ttymxc3:/dev/ttymxc3 + +volumes: + run: diff --git a/klipper.Dockerfile b/klipper.Dockerfile new file mode 100644 index 0000000..1e9dd1c --- /dev/null +++ b/klipper.Dockerfile @@ -0,0 +1,39 @@ +FROM python:2 as base + +ARG REPO=https://github.com/Klipper3d/klipper +ARG VERSION=master + +WORKDIR /opt + +## Download Klipper +RUN git clone ${REPO} klipper \ + && cd klipper \ + && git checkout ${VERSION} + +## Install klipper requirements +RUN pip install -r klipper/scripts/klippy-requirements.txt + +## Compile Python code +RUN python klipper/klippy/chelper/__init__.py + +## Create directories +RUN mkdir run cfg + +## User & Permissions +RUN groupadd klipper --gid 1000 \ + && useradd klipper --uid 1000 --gid klipper \ + && usermod klipper --append --groups dialout \ + && chown -R klipper:klipper klipper run cfg + +## --- Targets --- + +## Start Klippy +FROM base as klippy +USER klipper +ENTRYPOINT ["python"] +CMD ["klipper/klippy/klippy.py", "-I", "run/klipper.tty", "-a", "run/klipper.sock", "cfg/printer.cfg"] + +## For building MCU Code +FROM base as build +RUN apt update \ + && apt install build-essential libncurses-dev libnewlib-arm-none-eabi gcc-arm-none-eabi binutils-arm-none-eabi