【问题标题】:Export DJANGO_SETTINGS_MODULE as environment variable in supervisor将 DJANGO_SETTINGS_MODULE 导出为主管中的环境变量
【发布时间】:2017-09-24 21:01:50
【问题描述】:

我的项目基于虚拟环境中的 Django、Nginx、Gunicorn 和 Supervisor。

我在./bin/activate 脚本的末尾导出环境变量。每当我source 激活文件时,它都会导出环境变量。挺好看的……

我的问题是在我启动 Supervisor 脚本时出现的。似乎 ./bin/activate 不是来源,因为 Django 无法获取 SECRET_KEY 等变量。

我听说有人使用我的 virtualenv bin 目录中不存在的后激活脚本。我错过了什么重要的东西吗?为什么 Supervisor 不获取 ./bin/activate 脚本?

这是我的主管会议:

command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
directory=/opt/plcweb/project
user=bastien
autostart=true
autorestart=true
redirect_stderr=True
stdout_logfile=/opt/plcweb/gunicorn.log
stderr_logfile=/opt/plcweb/gunicorn.log

【问题讨论】:

  • 但是您在该配置中没有任何调用激活的内容。您希望它如何发生?
  • 我天真地认为,通过pip 将 gunicorn 安装到 virtualenv 中会将它绑定到它所属的这个 virtualenv,因此以某种方式激活它。

标签: django virtualenv gunicorn supervisord


【解决方案1】:

正如here 所解释的,您可以使用environment 指令获得一个非常简单的解决方案。所以要导出 DJANGO_SETTINGS_MODULE,supervisor conf 文件应该如下:

command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
environment=DJANGO_SETTINGS_MODULE=my_project.settings.production
directory=/opt/plcweb/project
user=bastien

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 2014-06-03
    • 2017-01-01
    • 2012-07-14
    • 2014-06-28
    • 1970-01-01
    • 2014-05-23
    • 2012-10-05
    • 2021-04-18
    相关资源
    最近更新 更多