エミ眠太の自由帳
 エミ眠太の自由帳
    
 
 基本      2023-07-01      

GitLabとRender.comを連携させてDjangoプロジェクトをデプロイしてみた

Language:
 Python Git
Framework/Library:
 Django
Technology:
 環境構築
Platform/Tool:
 GitLab Heroku Render.com

記事一覧へ

目次


はじめに

今に始まったことではありませんが、個人開発者の味方Herokuが無料で使えなくなったことで、同様の価格帯・スペックでテスト用・POC用に利用可能なRender.comに乗り換えた方も多いのではないでしょうか?私もついに重い腰を上げてRender.comを試してみたのでデプロイまでの方法まとめておきます。

注意(追記)

Render.comではSSH接続・ShellはFreeプランでは利用できません。そのため、本記事によってデプロイはできても利用ができません(申し訳ありません!!)。有償に切り替えるかデプロイ前にDjangoのSuperuserを作成しておく必要があります。前者については有償利用に切り替えるだけですが、後者については本記事に記載はないので予めご了承ください。。

デプロイまでの流れ

デプロイは以下の手順で実施していきます。

  1. アカウント作成
  2. 必要ファイルの作成
  3. リポジトリと接続
  4. デプロイ

※ちなみに、公式ドキュメントを見るとパッケージ管理ツールにpipではなくpoetryを使っていますが、pipでも問題なくデプロイできました。

1.アカウント作成

2023年6月時点では、GitHub・GitLab・Google・Emailでのアカウント作成ができるようです。今回私はGitLabのプロジェクトをデプロイを利用したいのでGitLabを選択しました。省略しますがメール認証・パスワード設定等をしてアカウント作成完了です。

2.必要ファイルの作成

Render.comにデプロイするには既存ファイルの変更、新ファイルの作成が必要になります。新ファイルは全てルートディレクトリに作成します。以下、+が新ファイル、▲が変更ファイルになりますが、下の順番で作成していくとスムーズにいくと思います。

  • ▲project名/settings.py
  • +requirements.txt
  • +build.sh
  • +render.yaml

▲project名/settings.py

まずはsettings.pyの修正をしていきましょう。

省略されているコードが複数箇所ありますが、変更部分は「#(追加)」とコメントアウトしている部分になります。 DBの設定部分についてはHerokuでも同様なので、Herokuから移行する場合には追記しなくでも大丈夫だと思います。 また、WhiteNoiseはDjango REST Frameworkでは不要かもしれませんが(未検証)、公式ドキュメント通り一応設定してみています。

+requirements.txt

次に、ローカルでインストールしたパッケージを本番環境でも利用するために、パッケージをリスト化したrequirements.txtファイルを作成します。

本当はもっと多くのパッケージをインストールしていますが、紛らわしいので省略してしまっています。ただし、settings.pyファイル修正時に追加したパッケージ(whitenoise, psycopg, gunicorn等)については必ずインストールが必要です。 requirements.txtファイルは以下のコマンドを実行することで作成可能です。

pip freeze > requirements.txt

+build.sh

次に+build.shファイルを作成します。デプロイ時に実行されるコマンドを記述したファイルです。

通常ローカルでも利用するコマンドなので説明は省略しますが、ここでは上で作成したrequirements.txtをインストールしているのがポイントです。

render.yaml

最後にRender.comにおける環境を設定するrender.yamlファイルを作成しましょう。

ここまで上記で設定してきた内容を反映していることが分かりますね。 Herokuの場合はUSとEuropeから選択できますが、Render.comではSingaporeも選択肢にあるのが大きな違いですね。 また、上のようにenvVarsに値を入力すると、デプロイ時に環境変数を手動でセットしなくても自動で設定してくれるので便利です。

3.リポジトリと接続

必要なファイルが作成できたらダッシュボード画面にいき、下の画像のようにヘッダーにある"New"から"Web Service"を選択します。"Configure account"(画面右側中央部)からGitLabと接続しましょう。GitLabとの接続が完了したら画面中央部に接続可能なリポジトリが表示されるので、該当のプロジェクトを「Connect』ボタンをクリックして接続させます。

4.デプロイ

上で「Connect」ボタンをクリックすると下のような画面に遷移します。

ここから"Name"render.yamlファイルで入力したプロジェクト名を転記、他の項目も必要であれば変更を加えていき(ほぼ変更不要だと思います)、ページ最下部の「Create Web Service」を押すと、下のようにデプロイが走ります(画像では途中でキャンセルしています※なお、赤い網掛け部分にはGitLabのリポジトリのパスが表示されています)。

下の画像のように、左ナビゲーションの"Events"から青緑色の雲マークが表示されればデプロイ完了です。あとはDjangoのSuperuserを作成して、、という流れですが、冒頭記載の通りFreeプランではShellが使えないので、よろしければこちらの記事を参考にされると良いかもしれません。

まとめ・参考

参考


記事をシェアする


関連する記事

よろしければこちらの記事も参考にしてみてください。

Loading...




記事一覧へ