From ed011b5f25a85c5a421f41c397679d1ae41d17b7 Mon Sep 17 00:00:00 2001 From: sillyfrog <816454+sillyfrog@users.noreply.github.com> Date: Tue, 7 Aug 2018 03:11:01 +1000 Subject: [PATCH] dockerfile: Add a basic reference Dockerfile (#488) Dockerfile: Add a basic reference Dockerfile This is a sample of how to get Klipper running in Docker, because of the virtual serial port, the user will have to modify things to include something to send the GCode. I have included a link to my repo which has OctoPrint up and running as an example. Signed-off-by: Trent Davis --- scripts/Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 scripts/Dockerfile diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 00000000..3752cd92 --- /dev/null +++ b/scripts/Dockerfile @@ -0,0 +1,38 @@ +# This is an example Dockerfile showing how it's possible to install Klipper in Docker. +# IMPORTANT: This Dockerfile must be moved to the repo root directory before building. +# Note that the host still needs to run Linux to connect the printers serial port to +# the container. +# When running, the serial port of your printer should be connected, including an +# argument such as: +# --device /dev/ttyUSB0:/dev/ttyUSB0 +# It's also required that your control program (eg: OctoPrint) be included in the same +# container as Docker does not allow sharing of the virtual serial port outside the +# container. +# The config should be in a file named "printer.cfg" in a directory mounted at: +# /home/klippy/.config/ +# For more Dockerfile examples with Klipper (and Octoprint) see: +# https://github.com/sillyfrog/OctoPrint-Klipper-mjpg-Dockerfile +FROM debian + +RUN apt-get update && \ + apt-get install -y sudo + +# Create user +RUN useradd -ms /bin/bash klippy && adduser klippy dialout +USER klippy + +#This fixes issues with the volume command setting wrong permissions +RUN mkdir /home/klippy/.config +VOLUME /home/klippy/.config + +### Klipper setup ### +WORKDIR /home/klippy + +COPY . klipper/ +USER root +RUN echo 'klippy ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/klippy && \ + chown klippy:klippy -R klipper +USER klippy +RUN ./klipper/scripts/install-octopi.sh + +CMD ["/home/klippy/klippy-env/bin/python", "/home/klippy/klipper/klippy/klippy.py", "/home/klippy/.config/printer.cfg"]