FROM python:3.10-slim-bullseye AS base ARG libsim="http://download.savannah.nongnu.org/releases/simulavr/libsim_1.1.0_amd64.deb" RUN apt-get update && apt-get install -y --no-install-recommends \ ### non specific packages git \ sudo \ supervisor \ swig \ virtualenv \ wget \ ### klipper avr-libc \ binutils-avr \ build-essential \ cmake \ gcc-avr \ ### moonraker curl \ libcurl4-openssl-dev \ libjpeg-dev \ liblmdb-dev \ libopenjp2-7 \ libsodium-dev \ libssl-dev \ python3-libgpiod \ zlib1g-dev \ ### libsim for simulavr && cd /usr/src \ && wget ${libsim} \ && apt-get install -y --no-install-recommends \ ./libsim_1.1.0_amd64.deb \ ### clean up && apt-get -y autoremove \ && apt-get clean \ && rm -f libsim_1.1.0_amd64.deb \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ ### add user "printer" && groupadd --force -g 1000 printer \ && useradd -rm -d /home/printer -g 1000 -u 1000 printer \ && usermod -aG dialout,tty,sudo printer \ && echo 'printer ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers.d/printer ### copy all required files COPY simulavr.config /usr/src COPY supervisord.conf /etc/supervisor/supervisord.conf COPY start.sh /bin/start ### make entrypoint executable RUN chmod +x /bin/start USER printer WORKDIR /home/printer ENTRYPOINT ["/bin/start"]