V 1.1.0 Aufruf via System-Cron

This commit is contained in:
rxf
2025-08-05 15:38:12 +00:00
parent 015495e374
commit 33b731c59f
7 changed files with 44 additions and 50 deletions

3
.gitignore vendored
View File

@@ -1,6 +1,5 @@
.venv .venv
.env .env
archive
wetter_heute.png wetter_heute.png
last_date.txt last_date.txt
logs log

View File

@@ -1,32 +1,20 @@
FROM python:3.10-slim FROM python:3.11-slim
# Install system dependencies # Installiere Tesseract + Abhängigkeiten
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
tesseract-ocr \ tesseract-ocr \
tesseract-ocr-deu \ tesseract-ocr-deu \
cron \ libglib2.0-0 \
nano \ libsm6 \
&& rm -rf /var/lib/apt/lists/* libxrender1 \
libxext6 \
# Set working directory && apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
COPY app/ /app
COPY app/requirements.txt ./
# Copy project files
COPY . /app
# Install Python packages
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt
# Set environment variables CMD ["python3", "main.py"]
ENV PYTHONUNBUFFERED=1
ENV TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
# Set up cron job
RUN echo "10 7 * * * bash /app/run_wetter.sh >> /app/logs/cron.log 2>&1" > wetter-cron \
&& crontab wetter-cron
# Make shell script executable
RUN chmod +x /app/run_wetter.sh
# Start cron in foreground
CMD ["cron", "-f"]

2
Read.me Normal file
View File

@@ -0,0 +1,2 @@
Dieser Docker-Container wird NICHT mit Portainer verwaltet
sondern direkt über das Script run_wetterserver.sh via cron aufgerufen

View File

@@ -7,6 +7,11 @@ Falls es das gleiche Datum ist, wird eine E-Mail an rexfue@gmail.com gesendet.
*** Versiongeschichte *** Versiongeschichte
V 1.1.0 2025-08-05 rxf
- wird nun nicht mehr im Portainer verwaltet sondern
mit den script run_wetterserver.sh direct vom System-Cron
aufgerufen
V 1.0.1 2025-08-04 rxf V 1.0.1 2025-08-04 rxf
- kleine Textverbesserunegen - kleine Textverbesserunegen
- keine Archivierung - keine Archivierung
@@ -15,8 +20,8 @@ V 1.0.0 2025-08-03 rxf
- erste laufende Version - erste laufende Version
''' '''
VERSION = "1.0.1" VERSION = "1.1.0"
VDATE = "2025-08-04" VDATE = "2025-08-05"
import requests import requests
@@ -44,7 +49,6 @@ SMTP_USER = os.getenv("GMX_EMAIL")
SMTP_PASS = os.getenv("GMX_PASSWORD") SMTP_PASS = os.getenv("GMX_PASSWORD")
print(f"Wetterserver-Check\r\nVersion {VERSION} vom {VDATE}") print(f"Wetterserver-Check\r\nVersion {VERSION} vom {VDATE}")
print(f"U: {SMTP_USER}, P: {SMTP_PASS}")
# ----------------------- # -----------------------
# Grafik herunterladen # Grafik herunterladen

View File

@@ -1,9 +0,0 @@
services:
wettercheck:
build: .
container_name: wetterserver
env_file:
- .env
volumes:
- ./logs:/app/logs
restart: unless-stopped

View File

@@ -1,19 +1,29 @@
#!/bin/bash #!/bin/bash
# Aktiviere virtuelle Umgebung # set -x
# source /home/rxf/Projekte/wetterserver/.venv/bin/activate # Konfiguration
PROJECT_DIR="/home/rxf/Projekte/wetterserver" # ← bitte anpassen
ENV_FILE="$PROJECT_DIR/.env"
LOG_FILE="$PROJECT_DIR/log/wetterserver.log"
IMAGE_NAME="wetterserver"
cd /app # Zeitstempel für Logging
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# Protokollfunktion mit Zeitstempel echo "[$TIMESTAMP] 🔁 Starte Wetterserver-Check..." | tee -a "$LOG_FILE"
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> logs/cron.log
}
log ">>> Starte Wetterprüfung" # Container starten
docker run --rm \
--env-file "$ENV_FILE" \
-v "$PROJECT_DIR/app:/app" \
"$IMAGE_NAME" >> "$LOG_FILE" 2>&1
# Python-Skript ausführen und Ergebnis loggen EXIT_CODE=$?
/usr/local/bin/python main.py >> logs/cron.log 2>&1
log ">>> Wetterprüfung abgeschlossen" if [ $EXIT_CODE -eq 0 ]; then
log "------------------------------------" echo "[$TIMESTAMP] ✅ Wetterserver-Check erfolgreich ausgeführt." | tee -a "$LOG_FILE"
else
echo "[$TIMESTAMP] ❌ Fehler beim Ausführen des Containers (Exit-Code: $EXIT_CODE)" | tee -a "$LOG_FILE"
fi
echo "-----------------------------------------------------" >> "$LOG_FILE"