virtual-klipper-printer/docker/Dockerfile

53 lines
1.2 KiB
Docker

FROM python:3.10-slim-bullseye AS base
RUN apt-get update && apt-get install -y \
--no-install-recommends \
--no-install-suggests \
### non specific packages
git \
sudo \
supervisor \
swig \
virtualenv \
### klipper
avr-libc \
binutils-avr \
build-essential \
cmake \
gcc-avr \
### moonraker
curl \
iproute2 \
libcurl4-openssl-dev \
libjpeg-dev \
liblmdb-dev \
libopenjp2-7 \
libsodium-dev \
libssl-dev \
python3-dev \
python3-libgpiod \
zlib1g-dev \
### clean up
&& apt-get -y autoremove \
&& apt-get clean \
&& 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 service_control.sh /bin/service_control
COPY start.sh /bin/start
### make entrypoint executable
RUN chmod +x /bin/start
USER printer
WORKDIR /home/printer
ENTRYPOINT ["/bin/start"]