【问题标题】:Fabric + DigitalOcean: unvisible ENVIRONMENT VARIABLE?Fabric + DigitalOcean:不可见的环境变量?
【发布时间】:2014-03-25 03:16:55
【问题描述】:

我在 DigitalOcean 上有服务器,我使用结构来部署我的代码。而且我的代码依赖于环境变量(flask config)。我今天遇到了一个奇怪的问题:在 /root/.bashrc 中的服务器上,我添加了下一行

export CONFIG=/path/to/conf

当我在远程控制台上执行时

>>> echo $CONFIG
>>> /path/to/conf  # result, as it should be

但在 fabfile 我有一个函数

def show():
    run("echo $CONFIG")

它会打印一个空字符串。为什么? 提前致谢!

【问题讨论】:

    标签: flask environment-variables fabric digital-ocean


    【解决方案1】:

    这不应该是这种情况,因为默认情况下 Fabric 使用 -l 标志,它应该是 Make bash act as if it had been invoked as a login shell (see INVOCATION below).

    我也无法重现您的问题:

    $ fab -H home test_bash
    [home] Executing task 'test_bash'
    [home] run: grep FOO $HOME/.bashrc
    [home] out: export FOO="BAR"
    [home] out:
    
    [home] run: echo $FOO
    [home] out: BAR
    [home] out:
    

    所以我的猜测是您更改了env.shell,或者您没有以root 用户身份连接,这是您设置此bash 导出的位置。 (注意 run() 与 Fabric 用法中的 sudo() 不同)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-18
      • 2018-11-11
      • 1970-01-01
      • 2021-07-11
      • 2021-06-15
      • 2021-05-03
      • 2019-07-15
      • 1970-01-01
      相关资源
      最近更新 更多