【问题标题】:Gunicorn Service Environment File Format?Gunicorn 服务环境文件格式?
【发布时间】:2018-03-25 22:01:09
【问题描述】:

我正在使用 gunicorn 和 nginx 在 ubuntu 机器上部署一个 Django 项目,遵循 this tutorial 来做。

我有一个看起来像这样的 gunicorn 服务,类似于教程中的服务:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/project/mysite
EnvironmentFile=/home/ubuntu/.virtualenvs/projectenv/bin/postactivate
ExecStart=/home/ubuntu/.virtualenvs/projectenv/bin/gunicorn --access-logfile - --workers 10 --bind unix:/home/ubuntu/project/mysite.sock mysite.wsgi:application

[Install]
WantedBy=multi-user.target

据我了解,gunicorn 服务是在一个全新的环境而不是我的项目的虚拟环境中运行的,因此我需要找到另一种方法来传递环境变量。我找到了this page,上面说我可以将 EnvironmentFile 添加到我的服务文件中。

我将环境文件定向到我的 virtualenv 的 postactivate 脚本,它看起来像这样:

#!/bin/bash
# This hook is sourced after this virtualenv is activated.

export DJANGO_DEBUG=False
...

不出所料,这不起作用。

此 EnvironmentFile 的正确格式是什么?

【问题讨论】:

  • 环境文件用于环境变量
  • 请注意,这完全是关于 systemd 的问题;它与 Django、Python 或 gunicorn 无关。

标签: python django ubuntu environment-variables gunicorn


【解决方案1】:

你只需要传递类似的东西:

DJANGO_DEBUG=False
PYTHON_PATH=:bla

文档here

【讨论】:

  • 所以我需要用这个变量创建一个文件并在EnvironmentFile中使用它?
  • 没错,试一试:)
猜你喜欢
  • 2018-03-29
  • 1970-01-01
  • 2021-10-09
  • 2018-09-22
  • 1970-01-01
  • 2014-09-24
  • 2021-09-12
  • 1970-01-01
  • 2014-12-17
相关资源
最近更新 更多