下記のDjangoチュートリアルでやったことの続きを書いて行きます。
Django Girls Tutorial
前回作成したDjangoアプリのHerokuへのデプロイからです。
HerokuとはPaaS(platform as a service)を提供している会社のサービス。
アプリケーションを実行するための環境を提供してくれます。
CentOSを使用していたので、ここはかなり苦労しました。
何故かHeroku公式インストール手順通りやってもうまくいかず・・。
なので、Heroku CLIのインストールはチュートリアルとは違う内容でやっています。
Herokuを使うために必要ないくつかのパッケージをインストール
$ pip install dj-database-url gunicorn whitenoise
requirements.txtを作成 (djangogirlsディレクトリに)
$ pip freeze > requirements.txt
requirements.txt編集、以下を追加 (Herokuで動かすために必要な1行)
(バージョンはチュートリアル通りじゃなく2.6.2を入れてみた)
psycopg2==2.5.4
Procfile作成し以下を入力
(どのコマンドを実行してウェブサイトをスタートするかHerokuに伝える)
$ vi Procfile
web: gunicorn mysite.wsgi
runtime.txt作成
(Herokuに使っているPythonのバージョンを伝える)
$ echo python-3.5.3 >> runtime.txt
mysite/local_settings.py(ローカル環境で動かすための設定を追加する)
$ vi mysite/local_settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
DEBUG = True
mysite/settings.py設定変更 最終行に以下を追加
$ vi mysite/settings.py
import dj_database_url
DATABASES['default'] = dj_database_url.config()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
ALLOWED_HOSTS = ['*']
STATIC_ROOT = 'staticfiles'
DEBUG = False
try:
from .local_settings import *
except ImportError:
pass
mysite/wsgi.py修正 最終行に以下を追加
$ vi mysite/wsgi.py
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)
Heroku CLIのインストール
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo '# Ruby 設定(HerokuCLIで使用する)' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ . ~/.bash_profile
$ rbenv --version # Ruby仮想環境のバージョン確認
$ rbenv install 2.3.1 # Rubyのインストール
$ rbenv versions # インストール済みRubyの確認
$ rbenv global 2.3.1 # Rubyのバージョン選択
$ rbenv version # カレントディレクトリで有効な Ruby バージョン確認
$ gem update --system # gem のアップデート
$ gem install rails --no-rdoc --no-ri # Railsインストール、たぶんやらなくていい
$ wget https://cli-assets.heroku.com/branches/stable/heroku-linux-amd64.tar.gz
$ tar -xvzf heroku-linux-amd64.tar.gz
$ sudo mv heroku /usr/local/
$ echo '' >> ~/.bash_profile
$ echo '# HerokuCLIの設定' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/heroku/bin:$PATH"' >> ~/.bash_profile
.gitignoreファイルを作成して以下の内容を記述する。(djangogirlsで行う)
myvenv
__pycache__
staticfiles
local_settings.py
db.sqlite3
*.py[co]
Gitリポジトリ作成
$ git init
Initialized empty Git repository in ~/djangogirls/.git/
$ git config user.name "Your Name"
$ git config user.email you@example.com
gitコマンド
変更されたファイルの一覧を表示
$ git status
作業ディレクトリ内の変更をステージングエリア(次回コミットの対象)に追加
$ git add -A . ($ git add -p インタラクティブなステージングセッションを開始 ファイルの一部を選択してステージできる)
$ git commit -m "My Django Girls app"
アプリケーション名を決める(すでに使われている名前は使用できない)
今回はアプリケーション名の指定なしで作成(自動でつけてくれる)
$ heroku create <アプリケーション名>
https://guarded-everglades-99999.herokuapp.com/
https://git.heroku.com/guarded-everglades-99999.git
変更したい場合は以下のコマンドで変更できる。
$ heroku apps:rename the-new-name
Herokuにアプリケーションをデプロイ
$ git push heroku master
Verifying deploy.... done.
Herokuのウェブプロセスを起動
$ heroku ps:scale web=1
Webブラウザで以下のURLにアクセス (まだheroku上にDBを設定していないのでエラーになる)
https://<アプリケーション名>.herokuapp.com/
https://<アプリケーション名>.herokuapp.com/admin
herokuへのDBのセットアップ
$ heroku run python manage.py migrate
$ heroku run python manage.py createsuperuser
デプロイ完了!
またまた長くなるので・・。
0 件のコメント:
コメントを投稿