0

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

4

1 回答 1

0

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

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

点云.yml

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

... and so on ...

点云/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')
于 2013-01-23T22:23:28.657 回答