ホーム >  Python > Django >  超簡単!Vagrant(CentOS7)にheroku用のDjango開発環境を作ってherokuへデプロイ

投稿日:   |  最終更新日:

超簡単!Vagrant(CentOS7)にheroku用のDjango開発環境を作ってherokuへデプロイ

DjangoherokuPythonWebサービス

herokuが配布するファイルからDjangoアプリケーションを作ります。今回は、ローカル環境のDjangoをherokuにデプロイします。

公式チュートリアルに沿って進める

前回、ローカルPCのサンドボックス(Vagrant)にHeroku CLIをインストールしました。ネット上には多数のherokuデプロイ方法をまとめたエンジニアさんblogがあります。しかし、高度な設定はとりあえず諦めて公式チュートリアルの方法でスタートアップしてみます。

PythonでHerokuを使い始める

デプロイまでの流れ

①まず、gitからheroku用の最小Djangoアプリをダウンロードします。

②これをローカル環境に展開します。

③「heroku create」コマンドでherokuにアプリを作成します。

④加工が完了したら、gitコマンドでherokuのリモートリポジトリへデプロイします。

⑤heroku内のアプリを起動します。

前提

  • Windows、Mac、Ubuntuのいずれの環境。あるいはVagrant(CentOS7)
  • herokuアカウント(無料枠でもOK)
  • heroku CLIがインストール済み
  • gitがインストール済み

gitを使うには?

gitはコマンドさえ使えればOKです。github上のリポジトリにpushするわけではないので、公開鍵等の設定は不要です。


準備

Vagrantでゲスト環境(仮想環境)を作ります。ゲスト環境の中にDjangoを構築します。その前に、以下の作業を終わらせましょう。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

③herokuにアカウントを作成します。

herokuを使ってwebアプリを始めましょう!アカウント作成

④VagrantにHeroku CLI をインストールします。

Vagrant(CentOS7)にHeroku CLI をインストール

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
Python 3.6.5
pip 9.0.3


heroku初期設定

①herokuのアカウント(無料枠)を取得します。

herokuを使ってwebアプリを始めましょう!アカウント作成

②vagrantにHeroku CLIをインストールします。

Vagrant(CentOS7)にHeroku CLI をインストール

Djangoアプリの準備

このステップでは、配備可能な単純なアプリケーションを準備します。

①vagrantを起動してログインします。

vagrant up
vagrant ssh

②作っておいたpyenv仮想環境(test_django)も起動します。

. test_django/bin/activate
(test_django) [vagrant@localhost]$ #環境が有効になるとターミナルがこのように表示されます。

③サンプルアプリケーションをクローンします。

git clone https://github.com/heroku/python-getting-started.git

④クローンしたローカルバージョンのディレクトリに移動します。

cd python-getting-started

以下のような構成です。ファイルを確認して下さい。

  • python-getting-started/
  • Procfile
  • Procfile.windows
  • README.md
  • app.json
  • db.sqlite3
  • manage.py
  • requirements.txt
  • runtime.txt
  • gettingstarted/
  • …省略
  • hello/
  • …省略
Procfile Herokuプロセスの起動コマンド
runtime.txt Pythonのバージョン指定
requirements.txt 依存パッケージのリスト

Procfile

Procfileは、djangoアプリケーションを起動するために実行するコマンドを記述しておきます。Procfileの内容は、以下のとおりです。

web: gunicorn gettingstarted.wsgi --log-file -

Heroku上で実行するコマンドをProcfileに記載します。サンプルアプリでは、 web というコマンドが定義され、gunicornコマンドを実行しています。webコマンドを実行すれば、HerokuのHTTPルーティングスタックに接続されます。

runtime.txt

heroku上で使用するPythonのバージョンを記述します。ここではPython3.7.0です。

python-3.7.0

requirements.txt

herokuで使用するDjangoと、pipインストールする関連パッケージを記述します。requirements.txtに記述しておけば、アプリケーションのデプロイ時に自動的にインストールされます。

django
gunicorn
django-heroku

「Django-Heroku」を指定しておけば、全ての設定が自動的に行われます。「collectstatic」もデプロイ中に自動的に実行されます。「Django-Heroku」パッケージを使用することをお勧めします。これにより、すべての設定が自動的に行われます。

リリースフェーズをチェックして 、新しいリリースが本番環境にデプロイされる前にタスクを実行できるようにしてください。

herokuにアプリを作成

①herokuコマンドで、herokuにログインしておきます。Herokuアカウントの作成時に使用した電子メールアドレスとパスワードを入力すれば下記のようになります。

heroku login

Enter your Heroku credentials.
Email: adam@example.com
Password (typing will be hidden):
Authentication successful.

②herokuにアプリを作成します。

heroku create

Creating app... done, ⬢ serene-caverns-xxxxx
https://serene-caverns-xxxxx.herokuapp.com/ | https://git.heroku.com/serene-caverns-xxxxx.git

アプリケーションを作成すると、git remote(called heroku)も作成されます。また、自分のパソコンのローカルgitリポジトリに関連付けられます。

「Heroku serene-caverns-xxxxx」は、自動的に作られるあなたのアプリの名前です。パラメータを指定すれば、名前はあとからでも変更可能です(今回は省略)。

アプリをデプロイする

①先ほど作成したアプリをデプロイします。これで、herokuサーバ上にファイルが展開されます。

$ git push heroku master

以下のような実行結果が端末に表示されます。

Counting objects: 4, done.

〜 略 〜

remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote:        Using supported version of Python 3.7 (python-3.7.0)
remote: -----> Installing python-3.7.0
remote: -----> Installing pip
To https://git.heroku.com/xxxxxxxxxxxxxxx.git
 * [new branch]      master -> master

herokuアプリの実行

①以下のコマンドを実行します。

$ heroku ps:scale web=1

herokuを開く

①ブラウザで、herokuにアプリを作成で作成されたアプリのURLを開きます。

→https://serene-caverns-xxxxx.herokuapp.com/

以下のページが開けば成功です。

ローカルでDjangoアプリを起動

ローカルにあるDjangoアプリ(python-getting-started)を起動します。

①以下のコマンドでDjangoを起動します。

$ heroku local web

※以下のコマンドでも起動できます。簡易サーバです。

$ python manage.py runserver 0.0.0.0:5000

これから開発を進めるには?

herokuへデプロイし、実行まで完了したらいよいよ開発を行います。基本的には以下の繰り返しで行えます。

①ローカルにあるDjangoアプリ(python-getting-started)を変更します。

②ローカルで起動して確認します。

$ cd 
$ heroku local web

③変更されたファイルをローカルのgitリポジトリに追加します。

git add .              #ローカルのgitリポジトリに追加
git commit -m "Demo"   #リポジトリに変更をコミット

④gitコマンドでhrokuにpushします。

$ git push heroku master

⑤ブラウザで、アプリのURLを開きます。

→https://serene-caverns-xxxxx.herokuapp.com/

次回

このDjangoアプリをローカル(vagrant)で実行します。

heroku用のDjango開発環境をローカルで実行するには?

トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター、フロントエンドエンジニア 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 20

最近の投稿
人気記事
カテゴリー
広告