平台默认会根据源码根目录是否有requirements.txt
文件来识别为Python项目.
在此步骤中,你需要提供一个可用的Python源码程序用来部署在Rainbond平台上,此应用程序至少需要满足如下条件:
requirements.txt
,用来管理Python项目的依赖,也是Rainbond识别为Python语言的必要条件Procfile
,用来定义程序启动方式runtime.txt
,用来定义当前项目的Python使用版本若程序没有依赖关系,可使requirements.txt
为空文件。
若无requirements.txt
可用如下命令生成
pip freeze > requirements.txt
如果项目未定义Procfile文件,平台默认会生成默认Procfile来运行War包。
web: gunicorn app:app --log-file - --access-logfile - --error-logfile -
上述是默认Procfile,如果需要扩展更多启动参数,可以自定义Procfile。
推荐使用runtime.txt来定义Python版本,若未定义,Rainbond将会默认使用python-3.6.6
版本。
$ cat runtime.txt
python-3.6.6
推荐的python版本
默认支持python版本
# python 2.7.x
python-2.7.9 python-2.7.10 python-2.7.13 python-2.7.14 python-2.7.15
# python 3.x
python-3.4.3
python-3.5.3
python-3.6.0 python-3.6.1 python-3.6.2 python-3.6.3 python-3.6.4 python-3.6.5 python-3.6.6
python-3.7.0
在构建高级设置或构建源处启用高级构建特性
环境变量 | 默认值 | 说明 |
---|---|---|
BUILD_PIP_INDEX_URL | https://pypi.tuna.tsinghua.edu.cn/simple | Pypi源 |
由于 Django 的静态文件支持(CSS、图片等)不是很容易配置而且不方便调试,这里给出一个示例:
settings.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
默认情况下系统会在构建 Django 应用时自动执行以下命令尝试检测(–dry-run)静态文件配置是否正确:
$ python manage.py collectstatic --dry-run --noinput
如果此命令没有出错,将执行真正的命令拷贝静态文件到 STATIC_ROOT 目录:
$ python manage.py collectstatic --noinput
用户可以手工禁用上述特性,只需要在应用的环境变量里配置 BUILD_DISABLE_COLLECTSTATIC
的值为 1。