Files
prind/docker/moonraker/Dockerfile

68 lines
1.8 KiB
Docker
Raw Normal View History

2021-10-17 00:13:35 +02:00
## Get Code and Build venv
FROM python:3.12-trixie AS build
2021-10-16 21:28:14 +02:00
WORKDIR /opt
2024-05-30 09:48:05 +02:00
COPY requirements-prind.txt .
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 \
&& git checkout ${VERSION} \
&& echo -n $(git describe --tags)-prind > moonraker/.version \
&& 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
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 \
libsodium23 \
libjpeg62-turbo \
libtiff6 \
libxcb1 \
zlib1g \
iproute2 \
systemd \
sudo \
git \
jq \
&& 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 \
&& 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
COPY --chown=moonraker:moonraker health.sh ./
COPY --chown=moonraker:moonraker --from=build /opt/moonraker ./moonraker
COPY --chown=moonraker:moonraker --from=build /opt/venv ./venv
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
## Start Moonraker
2021-10-16 21:28:14 +02:00
USER moonraker
EXPOSE 7125
VOLUME ["/opt/printer_data/run", "/opt/printer_data/gcodes", "/opt/printer_data/logs", "/opt/printer_data/database", "/opt/printer_data/config"]
ENTRYPOINT ["/opt/venv/bin/python", "moonraker/moonraker/moonraker.py"]
CMD ["-d", "/opt/printer_data"]
2021-10-16 21:28:14 +02:00