V 1.1.0 Aufruf via System-Cron
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,6 +1,5 @@
|
||||
.venv
|
||||
.env
|
||||
archive
|
||||
wetter_heute.png
|
||||
last_date.txt
|
||||
logs
|
||||
log
|
||||
|
||||
36
Dockerfile
36
Dockerfile
@@ -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 \
|
||||
tesseract-ocr \
|
||||
tesseract-ocr-deu \
|
||||
cron \
|
||||
nano \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set working directory
|
||||
libglib2.0-0 \
|
||||
libsm6 \
|
||||
libxrender1 \
|
||||
libxext6 \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
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
|
||||
|
||||
# Set environment variables
|
||||
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"]
|
||||
CMD ["python3", "main.py"]
|
||||
2
Read.me
Normal file
2
Read.me
Normal file
@@ -0,0 +1,2 @@
|
||||
Dieser Docker-Container wird NICHT mit Portainer verwaltet
|
||||
sondern direkt über das Script run_wetterserver.sh via cron aufgerufen
|
||||
@@ -7,6 +7,11 @@ Falls es das gleiche Datum ist, wird eine E-Mail an rexfue@gmail.com gesendet.
|
||||
|
||||
*** 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
|
||||
- kleine Textverbesserunegen
|
||||
- keine Archivierung
|
||||
@@ -15,8 +20,8 @@ V 1.0.0 2025-08-03 rxf
|
||||
- erste laufende Version
|
||||
|
||||
'''
|
||||
VERSION = "1.0.1"
|
||||
VDATE = "2025-08-04"
|
||||
VERSION = "1.1.0"
|
||||
VDATE = "2025-08-05"
|
||||
|
||||
|
||||
import requests
|
||||
@@ -44,7 +49,6 @@ SMTP_USER = os.getenv("GMX_EMAIL")
|
||||
SMTP_PASS = os.getenv("GMX_PASSWORD")
|
||||
|
||||
print(f"Wetterserver-Check\r\nVersion {VERSION} vom {VDATE}")
|
||||
print(f"U: {SMTP_USER}, P: {SMTP_PASS}")
|
||||
|
||||
# -----------------------
|
||||
# Grafik herunterladen
|
||||
@@ -1,9 +0,0 @@
|
||||
services:
|
||||
wettercheck:
|
||||
build: .
|
||||
container_name: wetterserver
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./logs:/app/logs
|
||||
restart: unless-stopped
|
||||
@@ -1,19 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Aktiviere virtuelle Umgebung
|
||||
# source /home/rxf/Projekte/wetterserver/.venv/bin/activate
|
||||
# set -x
|
||||
# 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
|
||||
log() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> logs/cron.log
|
||||
}
|
||||
echo "[$TIMESTAMP] 🔁 Starte Wetterserver-Check..." | tee -a "$LOG_FILE"
|
||||
|
||||
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
|
||||
/usr/local/bin/python main.py >> logs/cron.log 2>&1
|
||||
EXIT_CODE=$?
|
||||
|
||||
log ">>> Wetterprüfung abgeschlossen"
|
||||
log "------------------------------------"
|
||||
if [ $EXIT_CODE -eq 0 ]; then
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user