2021-10-17 00:13:35 +02:00
|
|
|
## Get Code and Build venv
|
2025-09-14 20:52:29 +00:00
|
|
|
FROM python:3.12-trixie AS build
|
2021-10-16 21:28:14 +02:00
|
|
|
|
2024-05-30 09:43:54 +02:00
|
|
|
WORKDIR /opt
|
2024-05-30 09:48:05 +02:00
|
|
|
COPY requirements-prind.txt .
|
2024-05-30 09:43:54 +02:00
|
|
|
|
|
|
|
|
RUN python -m venv venv \
|
|
|
|
|
&& venv/bin/pip install -r requirements-prind.txt
|
|
|
|
|
|
2021-10-16 21:28:14 +02:00
|
|
|
ARG REPO=https://github.com/Arksine/moonraker
|
|
|
|
|
ARG VERSION=master
|
|
|
|
|
|
2021-10-17 00:13:35 +02:00
|
|
|
RUN git clone ${REPO} moonraker \
|
|
|
|
|
&& cd moonraker \
|
2022-12-01 21:47:14 +01:00
|
|
|
&& git checkout ${VERSION} \
|
2024-11-09 17:35:43 +01:00
|
|
|
&& echo -n $(git describe --tags)-prind > moonraker/.version \
|
2022-12-01 21:47:14 +01:00
|
|
|
&& rm -rf .git
|
2021-10-17 00:13:35 +02:00
|
|
|
|
|
|
|
|
RUN python -m venv venv \
|
|
|
|
|
&& venv/bin/pip install -r moonraker/scripts/moonraker-requirements.txt
|
|
|
|
|
|
|
|
|
|
## Runtime Image
|
2025-09-14 20:52:29 +00:00
|
|
|
FROM python:3.12-slim-trixie AS run
|
2021-10-17 00:13:35 +02:00
|
|
|
|
2021-10-16 21:28:14 +02:00
|
|
|
RUN apt update \
|
|
|
|
|
&& apt install -y \
|
|
|
|
|
libopenjp2-7 \
|
|
|
|
|
python3-libgpiod \
|
|
|
|
|
curl \
|
2025-09-19 18:09:54 +02:00
|
|
|
libcurl4t64 \
|
|
|
|
|
libssl3t64 \
|
2021-10-16 21:28:14 +02:00
|
|
|
liblmdb0 \
|
2022-03-23 23:41:51 +01:00
|
|
|
libsodium23 \
|
2022-03-25 19:17:28 +01:00
|
|
|
libjpeg62-turbo \
|
2023-06-22 19:24:59 +02:00
|
|
|
libtiff6 \
|
2022-03-25 19:17:28 +01:00
|
|
|
libxcb1 \
|
2022-03-23 23:41:51 +01:00
|
|
|
zlib1g \
|
2021-12-30 22:30:21 +01:00
|
|
|
iproute2 \
|
2022-03-23 23:41:51 +01:00
|
|
|
systemd \
|
|
|
|
|
sudo \
|
2024-04-08 22:28:34 +02:00
|
|
|
git \
|
2024-11-11 23:03:40 +01:00
|
|
|
jq \
|
2022-03-23 23:41:51 +01:00
|
|
|
&& apt clean
|
2021-10-16 21:28:14 +02:00
|
|
|
|
2021-10-17 00:13:35 +02:00
|
|
|
WORKDIR /opt
|
2021-10-16 21:28:14 +02:00
|
|
|
RUN groupadd moonraker --gid 1000 \
|
|
|
|
|
&& useradd moonraker --uid 1000 --gid moonraker \
|
2022-12-01 21:47:14 +01:00
|
|
|
&& usermod moonraker --append --groups dialout
|
|
|
|
|
RUN mkdir -p printer_data/run printer_data/gcodes printer_data/logs printer_data/database printer_data/config \
|
2021-10-17 00:13:35 +02:00
|
|
|
&& chown -R moonraker:moonraker /opt/*
|
2021-10-16 21:28:14 +02:00
|
|
|
|
2024-11-11 23:03:40 +01:00
|
|
|
COPY --chown=moonraker:moonraker health.sh ./
|
|
|
|
|
|
2022-12-01 21:47:14 +01:00
|
|
|
COPY --chown=moonraker:moonraker --from=build /opt/moonraker ./moonraker
|
|
|
|
|
COPY --chown=moonraker:moonraker --from=build /opt/venv ./venv
|
|
|
|
|
|
2022-03-23 23:41:51 +01:00
|
|
|
RUN ln -s /bin/systemctl /sbin/shutdown \
|
|
|
|
|
&& ln -s /bin/systemctl /sbin/reboot \
|
|
|
|
|
&& echo -n "moonraker ALL = NOPASSWD: /bin/systemctl, /sbin/shutdown, /sbin/reboot" > /etc/sudoers.d/moonraker
|
|
|
|
|
|
2021-10-20 23:18:43 +02:00
|
|
|
## Start Moonraker
|
2021-10-16 21:28:14 +02:00
|
|
|
USER moonraker
|
2021-10-20 23:18:43 +02:00
|
|
|
EXPOSE 7125
|
2022-10-19 13:21:01 +02:00
|
|
|
VOLUME ["/opt/printer_data/run", "/opt/printer_data/gcodes", "/opt/printer_data/logs", "/opt/printer_data/database", "/opt/printer_data/config"]
|
2021-10-20 23:18:43 +02:00
|
|
|
ENTRYPOINT ["/opt/venv/bin/python", "moonraker/moonraker/moonraker.py"]
|
2022-10-18 18:46:05 +02:00
|
|
|
CMD ["-d", "/opt/printer_data"]
|
2021-10-16 21:28:14 +02:00
|
|
|
|