在crontab中运行django命令时出现问题

时间:2020-02-19 09:26:59

标签: python django docker cron django-commands

我正在使用 docker容器,我想定期抓取和更新Django模型。

所以我决定执行django命令并由Linux crontab定期运行它。

工作清单

* * * * * . /root/.profile; /usr/local/bin/python3 /code/manage.py crawl_snu >> /var/log/cron.log 2>&1
# crawl_snu is a command name

但是发生错误

Traceback (most recent call last):
  File "/code/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 204, in fetch_command
    settings.INSTALLED_APPS
  File "/usr/local/lib/python3.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python3.7/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python3.7/site-packages/django/conf/__init__.py", line 125, in __init__
    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")

SECRET_KEY在环境变量中,所以我像下面这样使用它

# settings.py
# ...
SECRET_KEY = os.environ.get('SECRET_KEY')
# ...

我试图在执行命令之前通过添加. /root/.profile/来传递环境变量,但这不起作用。

除了SECRET_KEY之外,还有许多环境变量,它们是由主机通过docker run --env .env imagename传递的。

可能是与Docker crontab相关的问题...我如何与crontab共享环境变量,或者有什么更好的解决方案来与docker定期执行django命令?

0 个答案:

没有答案
相关问题