Forum » Programiranje » Flask in cronjobi znotraj Docker containerja
Flask in cronjobi znotraj Docker containerja
i33a ::
Pozdravljeni,
v Docker containerju bi rad pognal Flask app in poleg tega bi rad vsakih nekaj minut izvedel določen ukaz (cronjob).
Trenutno to poskušam narediti takole:
Dockerfile:
entrypoint.sh
cronjob
Kot napako pa dodim naslednje (v /var/log/cron.log):
Mogoče kdo ve kaj moram spemeniti / ima kak nasvet?
v Docker containerju bi rad pognal Flask app in poleg tega bi rad vsakih nekaj minut izvedel določen ukaz (cronjob).
Trenutno to poskušam narediti takole:
Dockerfile:
FROM python:3.11 RUN apt-get update && apt-get install cron -y RUN mkdir /app COPY main.py /app COPY pyproject.toml /app WORKDIR /app ENV PYTHONPATH=${PYTHONPATH}:${PWD} RUN pip3 install poetry==1.2.0 RUN poetry config virtualenvs.create false RUN poetry install --only main COPY entrypoint.sh /app RUN chmod +x /app/entrypoint.sh # Copy cronjob file to the cron.d directory COPY cronjob /etc/cron.d/hello-cron # Give execution rights on the cron job RUN chmod 0644 /etc/cron.d/hello-cron # Apply cron job RUN crontab /etc/cron.d/hello-cron # Create the log file to be able to run tail RUN touch /var/log/cron.log EXPOSE 5000 # Run the command on container startup CMD ["sh", "/app/entrypoint.sh"]
entrypoint.sh
#!/bin/sh echo "Executing entrypoint..." export FLASK_APP=main.py echo $FLASK_APP echo "Starting cronjobs..." cron echo "Running Flask app..." flask run --host 0.0.0.0 --port 5000
cronjob
* * * * * cd /app && /usr/local/bin/flask mycronjob >> /var/log/cron.log 2>&1
Kot napako pa dodim naslednje (v /var/log/cron.log):
Error: Could not locate a Flask application. Use the 'flask --app' option, 'FLASK_APP' environment variable, or a 'wsgi.py' or 'app.py' file in the current directory. Usage: flask [OPTIONS] COMMAND [ARGS]... Try 'flask --help' for help. Error: No such command mycronjob
Mogoče kdo ve kaj moram spemeniti / ima kak nasvet?
Invictus ::
Na prvi pogled nimaš instaliranega flaska, ne mycronjob.
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
HotBurek ::
Jst grem stavit 98 centof, da se problem začne v fajlu entrypoint.sh, sledeč ukaz:
Vrednost bo potrebno shranit, kot se za pravega moškega spodobi. Se pravi, bolj na-trdo.
In ena od opcij je, da to vrednost trdno (premanentno) shraniš v sledeč file:
Nadalje, če ta trdota ne pomaga, naprej na Plan B.
Uporabi full path, se pravi:
export FLASK_APP=main.py
Vrednost bo potrebno shranit, kot se za pravega moškega spodobi. Se pravi, bolj na-trdo.
In ena od opcij je, da to vrednost trdno (premanentno) shraniš v sledeč file:
/etc/environment
Nadalje, če ta trdota ne pomaga, naprej na Plan B.
Uporabi full path, se pravi:
/full/path/to/main.py
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Zgodovina sprememb…
- spremenilo: HotBurek ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Rešeno] crontab job looper v Pythonu - neki mi ne gre...Oddelek: Programiranje | 743 (380) | HotBurek |
» | Arhiviranje serverja s TAR - incremental in FTP na drugo lokacijo in email report - SOddelek: Operacijski sistemi | 1575 (1486) | Daedalus |
» | Crontab in skripta v 8.04.2; kako?Oddelek: Operacijski sistemi | 1317 (1112) | BigWhale |
» | Vdor v ClarkConnect?Oddelek: Operacijski sistemi | 1987 (1799) | Nerdor |
» | File limit v linux-uOddelek: Operacijski sistemi | 853 (793) | BigWhale |