Python 2.7 and Flask in OpenShift


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 檢查現時帳號,如過期會再登入
rhc account

# 建立 python-2.7 的環境
rhc app create python-2.7

# 取得應用
git clone ssh://[email protected]/~/git/share.git/ openshift-appname

# 進入應用目錄
cd openshift-appname

# 修改 wsgi/application
vim wsgi/application

#!/usr/bin/python
import os
import sys

sys.path.insert(0, os.path.dirname(__file__) or '.')
PY_VERSION = 'python-' + ('.'.join(map(str, sys.version_info[:2])))
PY_DIR = os.environ['HOME'] + '/' + PY_VERSION

virtenv = PY_DIR + '/virtenv/'

PY_CACHE = virtenv + 'lib/' + PY_VERSION + '/site-packages'

os.environ['PYTHON_EGG_CACHE'] = os.path.join(PY_CACHE)
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')

try:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass

from manager import app as application

# 將原應用複雜進來 wsgi/ 結構大約是
- libs
- wsgi
- appname
- manager.py
- application
- app.py

# 修改 deploy 是 build 的 hook
vim .openshift/action_hooks/build

if [ ! -d $OPENSHIFT_DATA_DIR/uploads ]; then
mkdir $OPENSHIFT_DATA_DIR/uploads
fi

ln -sf $OPENSHIFT_DATA_DIR/uploads $OPENSHIFT_REPO_DIR/uploads

# 之後提交
git add .
git commit -m 'added my site'
git push

# 再查看網站,有問題可用
rhc tail [APP_NAME]

# 加入別名
rhc alias add share new-subdomain.domain.com