気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【OpenShift】Djangoアプリデプロイ時メモ

以前書いた手順だと、static関係のファイルがうまくいかないので追記 rinnegrid.hatenablog.com

  • setup.py
    • PROJECT_ROOTを定義する
import os
from setuptools import setup

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

setup(name='anyapp',
      version='1.0',
      description='OpenShiftApp',
      author='Your Name',
      author_email='example@example.com',
      url='http://www.python.org/sigs/distutils-sig/',
#      install_requires=['Django>=1.3'],
     )

  • anyapp/settings.py
    • STATIC_ROOTを定義する(OPENSHIFT上かどうかによって内容を変える)
if 'OPENSHIFT_REPO_DIR' in os.environ:
    STATIC_ROOT = os.path.join(os.environ.get('OPENSHIFT_REPO_DIR'), 'wsgi', 'static')
else:
    STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))
RewriteEngine On
RewriteRule ^application/static/(.+)$ /static/$1 [L]
  • デプロイ時のcollectstatic
    • .openshift/action_hooksにpushしたときに実行するコマンドを書けるが、ひとまずは[rhc ssh anyapp]時の想定
source ${OPENSHIFT_HOMEDIR}/python/virtenv/venv/bin/activate
cd $OPENSHIFT_REPO_DIR
python manage.py collectstatic