KlipperScreen initial setup

* KlipperScreen Dockerfile
  * GitHub Workflow
  * klipperscreen.conf
  * klipperscreen service definition
This commit is contained in:
Markus Küffner
2022-03-12 21:34:52 +01:00
committed by Markus Küffner
parent c404c7136c
commit 96fc52b1cb
4 changed files with 76 additions and 0 deletions

13
.github/workflows/klipperscreen.yaml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: 'Image: KlipperScreen'
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
jobs:
build:
uses: mkuf/prind/.github/workflows/image-workflow.yaml@main
with:
app: klipperscreen
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}

View File

@@ -0,0 +1,2 @@
[printer prind]
moonraker_port: 80

View File

@@ -124,6 +124,24 @@ services:
- "traefik.http.routers.mainsail.rule=PathPrefix(`/`)"
- "traefik.http.routers.mainsail.entrypoints=web"
klipperscreen:
image: mkuf/klipperscreen:nightly
container_name: klipperscreen
restart: unless-stopped
network_mode: host
depends_on:
moonraker:
condition: service_started
profiles:
- klipperscreen
command:
- "-c"
- "cfg/klipperscreen.conf"
volumes:
- ./config:/opt/cfg
- /tmp/.X11-unix:/tmp/.X11-unix
- /home/kiosk/.Xauthority:/tmp/.Xauthority
## Accompanying Services/Infra
##

View File

@@ -0,0 +1,43 @@
FROM python:3 as build
ARG REPO=https://github.com/jordanruthe/KlipperScreen
ARG VERSION=master
RUN apt update \
&& apt install -y \
libgirepository1.0-dev \
&& apt clean
WORKDIR /opt
RUN git clone ${REPO} klipperscreen \
&& cd klipperscreen \
&& git checkout ${VERSION}
RUN python -m venv venv \
&& venv/bin/pip install -r klipperscreen/scripts/KlipperScreen-requirements.txt
FROM python:3-slim as run
RUN apt update \
&& apt install -y \
libglib2.0-0 \
libgirepository-1.0-1 \
gir1.2-gtk-3.0 \
&& apt clean
WORKDIR /opt
COPY --from=build /opt/klipperscreen ./klipperscreen
COPY --from=build /opt/venv ./venv
RUN mkdir cfg
RUN groupadd klipperscreen --gid 1000 \
&& useradd klipperscreen --uid 1000 --gid klipperscreen \
&& chown -R klipperscreen:klipperscreen /opt/*
## Start klipperscreen
USER klipperscreen
ENV XAUTHORITY=/tmp/.Xauthority
ENV DISPLAY=:0
VOLUME ["/opt/cfg"]
ENTRYPOINT ["/opt/venv/bin/python", "klipperscreen/screen.py"]
CMD ["-c", "cfg/klipperscreen.conf"]