FROM ghcr.io/siwatinc/siwat-ubuntubaseimage:jammy ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Bangkok # User Creation RUN useradd -ms /bin/bash klippy RUN usermod -aG dialout klippy RUN useradd -ms /bin/bash printeruser RUN usermod -aG dialout printeruser RUN addgroup --system printfarm RUN usermod -aG printfarm klippy RUN usermod -aG printfarm printeruser RUN mkdir /opt/printstack RUN chown printeruser:printfarm /opt/printstack RUN sudo usermod -d /opt/printstack printeruser USER root # APT Dependencies RUN apt-get update && apt-get install -y \ cmake \ g++ \ wget \ unzip \ psmisc \ git \ python3-virtualenv \ virtualenv \ python3-dev \ libffi-dev \ build-essential \ tzdata \ zlib1g-dev \ libjpeg-dev \ ffmpeg \ iputils-ping \ sudo \ iproute2 ########################## # Klipper # ########################## USER root COPY klippy.sudoers /etc/sudoers.d/klippy RUN rm -f /bin/systemctl RUN ln -s /bin/true /bin/systemctl USER printeruser WORKDIR /opt/printstack RUN mkdir -p /opt/printstack/data/klipper RUN git clone https://github.com/KevinOConnor/klipper RUN chmod +x ./klipper/scripts/install-ubuntu-22.04.sh RUN ./klipper/scripts/install-ubuntu-22.04.sh USER root RUN rm -f /bin/systemctl ########################## # Moonraker # ########################## USER printeruser EXPOSE 7125 EXPOSE 7130 WORKDIR /opt/printstack RUN git clone https://github.com/Arksine/moonraker.git RUN mkdir -p /opt/printstack/data/moonraker RUN moonraker/scripts/install-moonraker.sh -d /opt/printstack/data/moonraker -z ########################## # Daemons # ########################## COPY entrypoint.sh /opt/printstack/entrypoint.sh USER root RUN chmod +x /opt/printstack/entrypoint.sh USER printeruser ENTRYPOINT ["/opt/printstack/entrypoint.sh"]