容器 cronjob 看不到环境变量

时间:2021-07-30 13:02:30

标签: docker cron dockerfile

我正在尝试在 Docker 容器内运行 cronjobs。当我记录输出时,环境变量为空,但是当我在容器内手动运行我的脚本时,它工作正常。

这些是我的文件:

main.py

import os

print(os.getenv('DATABASE'))

crontab

* * * * * /usr/local/bin/python3 /app/main.py > /proc/1/fd/1 2>/proc/1/fd/2

Dockerfile

FROM python:3.7-slim

RUN apt-get update

RUN apt-get install cron -y

WORKDIR /app

COPY main.py /app/main.py

COPY crontab /etc/cron.d/crontab

RUN chmod 0644 /etc/cron.d/crontab

RUN /usr/bin/crontab /etc/cron.d/crontab

CMD ["cron", "-f"]

重现:

 - docker build -t log .
 - docker run --env DATABASE=MYSQL --name cronlog -d log  
 - docker logs cronlog (returns None every minute)
 - docker exec -it cronlog python3 main.py (returns MYSQL)

0 个答案:

没有答案