Skip to content

Commit 59122c8

Browse files
authored
Merge pull request #3 from cancel-cloud/codex/review-logger-container-for-issues
Fix cron scheduling and timezone handling
2 parents c70c617 + a7b31b6 commit 59122c8

4 files changed

Lines changed: 23 additions & 13 deletions

File tree

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ RUN pip install --no-cache-dir -r requirements.txt
1212
COPY . .
1313

1414
# Installiere cron
15-
RUN apt-get update && apt-get -y install cron
15+
ENV DEBIAN_FRONTEND=noninteractive
16+
RUN apt-get update && apt-get -y install cron tzdata && rm -rf /var/lib/apt/lists/*
1617

1718
# Kopiere das Entrypoint-Skript und mache es ausführbar
1819
COPY entrypoint.sh /usr/local/bin/

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ docker run --name idle-outpost-claimer -d \
4040
ghcr.io/cancel-cloud/idleoutpostclaimer:latest
4141
```
4242

43-
Das war's! Der Container läuft nun im Hintergrund (`-d` Flag) und führt den Claim-Prozess täglich um 02:00 Uhr nachts aus.
43+
Das war's! Der Container läuft nun im Hintergrund (`-d` Flag) und führt den Claim-Prozess täglich um 02:00 Uhr aus.
44+
Die Zeit bezieht sich standardmäßig auf die UTC-Zeitzone.
45+
Möchtest du eine andere Zone verwenden, kannst du die Umgebungsvariable `TZ` setzen (z.B. `-e TZ=Europe/Berlin`).
4446

4547
## 🪵 Logs einsehen
4648

docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ services:
88
environment:
99
# Dieser Wert muss in der Portainer UI oder in einer .env-Datei gesetzt werden
1010
- USER_GAME_ID=${USER_GAME_ID}
11+
# Optional: setzt die Zeitzone des Containers
12+
- TZ=${TZ}
1113
volumes:
1214
# Persistiert die Log-Dateien in einem benannten Volume
1315
- idle-outpost-logs:/var/log

entrypoint.sh

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
#!/bin/bash
22
set -e
33

4-
# Schreibe die Umgebungsvariable in eine Datei, damit cron sie laden kann
5-
printenv | grep USER_GAME_ID > /etc/environment
4+
# Optional: Zeitzone setzen
5+
if [ -n "$TZ" ] && [ -f "/usr/share/zoneinfo/$TZ" ]; then
6+
ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime
7+
echo "$TZ" > /etc/timezone
8+
else
9+
echo "Invalid timezone: $TZ. Skipping timezone configuration." >&2
10+
fi
611

7-
# Richte den Cron-Job ein
8-
# Führt das Skript jeden Tag um 02:00 Uhr aus
9-
echo "0 2 * * * /usr/local/bin/python /app/app.py >> /var/log/cron.log 2>&1" > /etc/cron.d/claim-cron
12+
# Cron-Job samt Umgebungsvariable konfigurieren
13+
{
14+
echo "USER_GAME_ID=$USER_GAME_ID"
15+
echo "0 2 * * * root /usr/local/bin/python /app/app.py >> /var/log/cron.log 2>&1"
16+
} > /etc/cron.d/claim-cron
1017

11-
# Setze die richtigen Berechtigungen
18+
# Rechte setzen und Log-Datei anlegen
1219
chmod 0644 /etc/cron.d/claim-cron
13-
14-
# Erstelle die Log-Datei, damit wir sie mit 'tail' verfolgen können
1520
touch /var/log/cron.log
1621

17-
# Zeige die Start-Nachricht an
22+
# Startmeldung schreiben
1823
/usr/local/bin/python /app/app.py --status >> /var/log/cron.log 2>&1
1924

20-
# Starte den Cron-Dienst im Hintergrund und zeige die Logs im Vordergrund an
21-
cron && tail -f /var/log/cron.log
25+
# Cron starten und Logs ausgeben
26+
cron && tail -f /var/log/cron.log

0 commit comments

Comments
 (0)