Ich versuche, einen Docker-Container mit Python-Code und Crontab (Scheduler) auszuführen. Unten ist mein Skript:
Docker-Datei
FROM ubuntu:latest
MAINTAINER [email protected]
RUN apt-get update && apt-get install -y software-properties-common && apt-get install -y python cron vim
# Copy hello-cron file to the cron.d directory
COPY my-crontab /etc/cron.d/my-crontab
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/my-crontab
ADD config.py /
ADD index.py /
RUN chmod a+x config.py index.py
# Apply cron job
RUN crontab /etc/cron.d/my-crontab
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
#CMD cron && tail -f /var/log/cron.log
CMD ["cron", "-f"]
Meine Crontab
*/2 * * * * /index.py > /dev/console
Wenn ich die Docker-Datei erstelle und den Code ausführe, erfolgt keine Reaktion. Kann mir bitte jemand sagen, wie ich die Docker-Datei ändern kann, um das Skript auszuführen?
Antwort1
Sie können versuchen, den Container mit „docker container exec -it ‚container-id‘ bash“ aufzurufen und von dort aus das Python-Skript auszuführen, um auf diese Weise zu prüfen, ob es funktioniert oder nicht.
Von da an gibt es mehrere Szenarien. Es hängt davon ab, welche Art von Shebang Sie in das Skript eingegeben haben (z. B. „#!/usr/bin/env python“, „#!/usr/bin/python“ usw.), welche Python-Version im Container installiert ist und für welche Version das Skript geschrieben wurde usw. Ohne weitere Informationen kann ich Ihnen nicht weiterhelfen.