dockerize
This commit is contained in:
		
							
								
								
									
										6
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
*.env
 | 
			
		||||
.venv
 | 
			
		||||
image.jpg
 | 
			
		||||
processed.png
 | 
			
		||||
interface/
 | 
			
		||||
__pycache__/
 | 
			
		||||
							
								
								
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -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"]
 | 
			
		||||
							
								
								
									
										4
									
								
								cron_job.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								cron_job.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Run the Python script using uv
 | 
			
		||||
uv run /app/szuru-eink.py
 | 
			
		||||
							
								
								
									
										1
									
								
								crontab
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								crontab
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
*/15 * * * * root /usr/local/bin/cron_job.sh >> /var/log/szuru-eink-cron.log 2>&1
 | 
			
		||||
							
								
								
									
										15
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -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'
 | 
			
		||||
		Reference in New Issue
	
	Block a user