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