Python Lernhandbuch

Kapitel 16: Alles in Docker betreiben · Abschnitt 4 von 5

Skripte im Container: einmalig und zeitgesteuert

Dein Import-Skript aus Kapitel 12 und 13 kann als eigener Dienst im selben Image laufen:

yaml
  import:
    build: .
    command: ["uv", "run", "--frozen", "--no-dev", "python", "kunden_import.py"]
    environment:
      DATABASE_URL: postgresql://lernen:${DB_PASSWORD}@db:5432/lerndb
    depends_on:
      db:
        condition: service_healthy
    profiles: ["jobs"]        # startet nicht mit "up", nur auf Anforderung

Einmal ausführen: docker compose run --rm import. Zeitgesteuert startest du das per Cron auf dem Server, zum Beispiel jeden Tag um 6 Uhr:

text
0 6 * * * cd /pfad/zum/projekt && docker compose run --rm import >> import.log 2>&1

Tipp: Bei Python-Beispielen kannst du auf ▶ Ausprobieren klicken, den Code verändern und direkt ausführen.

← Zurück