klipper/scripts/Dockerfile

39 lines
1.4 KiB
Docker

# 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"]