From 90ea15e7a1ac07e53c93cb59b9a65df00a9872df Mon Sep 17 00:00:00 2001 From: shibao Date: Sun, 20 Jul 2025 17:01:30 +0000 Subject: [PATCH] dockerize --- .dockerignore | 6 ++++++ Dockerfile | 28 ++++++++++++++++++++++++++++ cron_job.sh | 4 ++++ crontab | 1 + docker-compose.yml | 15 +++++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 cron_job.sh create mode 100644 crontab create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8f750 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +*.env +.venv +image.jpg +processed.png +interface/ +__pycache__/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f06380a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +# Use a lightweight Python base image +FROM python:3.13-slim-bookworm + +# Set the working directory in the container +WORKDIR /app + +# Install uv and dependencies +COPY pyproject.toml ./ +RUN apt-get update && apt-get install -y cron \ + && rm -rf /var/lib/apt/lists/* +RUN pip install uv && uv sync + +# Copy the application code +COPY szuru-eink.py ./ +COPY epd/ ./epd/ + +# Copy the cron job script and crontab file +COPY cron_job.sh /usr/local/bin/cron_job.sh +COPY crontab /etc/cron.d/szuru-eink-cron + +# Give execution rights on the cron job script +RUN chmod +x /usr/local/bin/cron_job.sh + +# Apply cron job +RUN crontab /etc/cron.d/szuru-eink-cron + +# Run cron +CMD ["cron", "-f"] diff --git a/cron_job.sh b/cron_job.sh new file mode 100644 index 0000000..6c11081 --- /dev/null +++ b/cron_job.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# Run the Python script using uv +uv run /app/szuru-eink.py diff --git a/crontab b/crontab new file mode 100644 index 0000000..896067f --- /dev/null +++ b/crontab @@ -0,0 +1 @@ +*/15 * * * * root /usr/local/bin/cron_job.sh >> /var/log/szuru-eink-cron.log 2>&1 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f127bac --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.8' + +services: + szuru-eink-bot: + build: . + container_name: szuru-eink-bot + environment: + - SZURU_URL=YOUR_SZURU_URL + - SZURU_USER=YOUR_SZURU_USER + - SZURU_TOKEN=YOUR_SZURU_TOKEN + - EPD_TYPE=YOUR_EPD_TYPE # e.g., '7.5 V2', 5.65f + - EINK_IP=YOUR_EINK_IP + - DITHERING_MODE=YOUR_DITHERING_MODE # e.g., mono, color + volumes: + - ./logs:/var/log'