【问题标题】:Using different production and staging requirements files on dotcloud在 dotcloud 上使用不同的生产和暂存需求文件
【发布时间】:2013-01-23 22:08:11
【问题描述】:

我正在尝试使用预构建挂钩在 Dotcloud 上为开发和生产中的 Django 项目安装单独的需求(实际上只是在生产中遗漏了几个调试包)。我正在定义一个 DEBUG 环境变量来触发调试行为,并且我想选择一个 pip 需求文件。我想使用 prebuild hook 来运行一个 Python 脚本,该脚本检查调试变量的值并将正确的需求文件符号链接到根目录中的 requirements.txt,但这似乎不起作用。据我所知,预构建挂钩甚至没有运行,我正在使用dotcloud push --clean 尝试强制进行全新安装。我是否误解了预构建挂钩的工作原理?如果这不是使用可变需求的好方法,我还能做什么?

【问题讨论】:

    标签: deployment dotcloud


    【解决方案1】:

    我觉得自己很愚蠢,但我确实想留下我的问题,因为该方法有效。我的问题是一个错误的dotcloud.yml 文件,其中我的缩进包含prebuildconfig 下,而不是直接在服务名称下。

    如果其他人想这样做,这里有一个适合我的结构:

    dotcloud.yml

    www:
      type: python
      prebuild: python dotcloud/prebuild.py
      config:
        python_version: v2.7
    
    ... and so on ...
    

    dotcloud/prebuild.py

    #!/usr/bin/env python
    
    import json
    import os
    
    with open('/home/dotcloud/environment.json') as f:
        env = json.load(f)
    
    try:
        os.unlink('requirements.txt')
    except OSError:
        pass
    
    if str(env.get('DEBUG', False)).lower() in ['t', 'true', 'y', 'yes', 'on']:
        print 'Using DEBUG mode requirements'
        os.symlink('requirements/dotcloud_debug.txt', 'requirements.txt')
    else:
        print 'Using PRODUCTION mode requirements'
        os.symlink('requirements/dotcloud_production.txt', 'requirements.txt')
    

    【讨论】:

      猜你喜欢
      • 2020-11-13
      • 2016-09-14
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2017-01-30
      • 2023-03-17
      相关资源
      最近更新 更多