ご覧いただきありがとうございます!
領護(りょうご)です。
DjangoやPythonの開発環境を構築するのって結構大変ですよね...。
Pythonやpipライブラリをインストールしたり、パスを通したり、色々設定したり、やることが盛りだくさんでエラーも起きやすい...。
そんな開発環境に時間を費やしている方必見!私も良く使っているVSCode+Dockerを使って簡単にDjangoの開発環境を構築する方法を解説します!
実行環境
OS・・・Windows10
Docker Desktop・・・4.17.1
VSCode・・・1.76.2
Python・・・3.10.9
Django・・・4.1.7
VSCodeをインストール
まずは、プログラムを書くテキストエディタとしてVSCodeをインストールします。
VSCodeダウンロードサイトにアクセスして、「other platforms」をクリックします。
Windowsの場合は、「Windows」をクリックしてインストーラーをダウロードします。
Windowsが32bitの場合は、UserInstaller「x86」をクリックします。
macOSの場合は、「MAC」をクリックします。
ダウロードが完了したインストーラーをダブルクリックで起動します。
使用許諾契約書の同意は「同意する」にチェックを入れて「次へ」をクリックします。
追加タスクの選択は「デスクトップ上にアイコンを作成する」と「PATHへの追加(再起動後に使用可能)」にチェックを入れて「次へ」をクリックします。
インストール準備完了は「インストール」をクリックします。
インストールが完了したら「Visual Studio Codeを実行する」にチェックを入れて「完了」をクリックします。
これで無事VSCodeがインストールできました!
次に最低限必要な拡張機能をインストールします。
VSCodeの拡張機能をインストール
Django+Python+Dockerを動かすのに必要な拡張機能をインストールします。
拡張機能のインストール方法は上記の記事を参考にしてください。
Djangoを使う時に便利でおすすめの拡張機能も紹介しています!
「Python」「Remote Development」「Japanese Language Pack for Visual Studio Code」の3つをインストールします。
Python
VSCodeでPythonを書く時に必須の拡張機能です。
Remote Development
VSCodeとDockerコンテナをリモート接続する時に必要なツールが一式入っている拡張機能です。
Japanese Language Pack for Visual Studio Code
VSCodeを日本語化してくれる拡張機能です。
英語が出来る人は入れなくても大丈夫です笑
一度VSCodeを再起動するとメニューが日本語に変わります。
VSCodeを再起動しても日本語化されない場合
メニューの「View」をクリックして、「Command Palette...」をクリックします。
コマンドパレットに「display」と入力して、「Configure Display Language」をクリックします。
「日本語」をクリックします。
「Restart」をクリックして再起動すると日本語に変わります。
拡張機能のインストールは以上です。
次は、Docker Desktopをインストールします。
Docker Desktopをインストール
Windowsを使用する場合は、Docker Desktopをインストールする前にWSL2をインストールします。
MacはWSL2をインストールしなくて大丈夫です。
WSL2をインストール(Windowsのみ)
WSL2とは、Windows上でLinuxを動作させる時に必要なソフトウェアになります。
Windowsの検索から「powershell」と入力して、「管理者として実行する」をクリックします。
wsl --install
コマンドに「wsl --install」と入力してエンターキーを押すとインストールが開始します。
無事にWSL2のインストールが完了すると上記の画面になるのでPCを再起動します。
PC再起動後、Linuxで使用するアカウント設定画面が表示されるので、お好きなユーザー名とパスワードを設定します。
注意!
パスワードを入力する時、セキュリティの関係で入力内容は見えないようになっています。
username・・・ユーザー名
password・・・パスワード
これでWSL2のインストールと設定が完了しました。
Docker Desktopをインストール
Windows用ダウンロード
Docker Desktopダウンロードサイト Windows用にアクセスして、「Docker Desktop for Windows」をクリックしてインストーラーをダウロードします。
Mac用ダウンロード
Docker Desktopダウンロードサイト Mac用にアクセスして、「Docker Desktop for Mac with Intel chip」もしくは「Docker Desktop for Mac with Apple silicon」をクリックしてインストーラーをダウロードします。
ダウンロードが完了したインストーラーをダブルクリックで起動します。
Configurationは「Use WSL2~」と「Add shortcut to desktop」にチェックを入れて「OK」をクリックします。
インストールが開始します。
インストールが完了したら「Close and log out」をクリックして一度サインアウトします。
再度ログインすると上記の画面が表示されるので「Accept」をクリックします。
これでDocker Desktopのインストールが完了しました。
Docker Desktopがインストールされているか確認
Windowsの検索から「cmd」と入力して、「コマンドプロンプトの開く」をクリックします。
docker --version
コマンドに「docker --version」と入力してDockerのバージョンが表示されるとインストールが正しく出来ています。
2023年3月23日時点のバージョンは、20.10.23ですね。
プロジェクトに必要なファイルを作成
プロジェクトに必要なフォルダとファイルを作成していきます。
プロジェクトフォルダを新規作成
まずは、プロジェクトフォルダを作成しましょう。
私は、「ユーザー名/PythonProject」の中に「docker_web」という名前でフォルダを作成しました。
VSCodeを起動して、メニューの「ファイル」から「フォルダを開く」をクリックしてご自身で作成したプロジェクトフォルダを選択して開きます。
私の場合は、先ほど作成した「docker_web」を開きます。
devcontainer.jsonを作成
VSCodeとDockerコンテナのリモート接続設定に使用する「devcontainer.json」を作成します。
エクスプローラーエリアのプロジェクトフォルダを開き、プロジェクトフォルダ内で右クリック「新しいフォルダ」をクリックします。
フォルダ名は「.devcontainer」と入力してフォルダを作成します。
作成した「.devcontainer」フォルダを右クリックして「新しいファイル」をクリックします。
ファイル名は「devcontainer.json」と入力してファイルを「.devcontainer」の中に作成します。
{
// コンテナ名
"name": "docker_web",
// 使用するDockerfileを設定
"dockerFile": "../Dockerfile",
// VSCodeで使用する拡張機能を設定
"extensions": [
"ms-azuretools.vscode-docker",
"ms-python.python",
"ms-python.vscode-pylance",
],
}
「devcontainer.json」をクリックで開き、上記の内容を入力します。
"name"には、分かりやすいコンテナ名を入力します。(プロジェクトフォルダ名がおすすめ)
"dockerFile"には、後ほど作成するDockerfileのパスを設定します。
"extensions"には、Dockerコンテナで使用したいVSCodeの拡張機能IDを設定します。
launch.jsonを作成
Djangoプロジェクトの起動で使用する「launch.json」を作成します。
プロジェクトフォルダ内で右クリック「新しいフォルダ」をクリックします。
フォルダ名は「.vscode」と入力してフォルダを作成します。
作成した「.vscode」フォルダを右クリックして「新しいファイル」をクリックします。
ファイル名は「launch.json」と入力してファイルを「.vscode」の中に作成します。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver"
],
"django": true
}
]
}
「launch.json」をクリックで開き、上記の内容を入力します。
// 80番ポートに変更した例
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver",
"127.0.0.1:80" // ポート番号を80番に変更
],
"django": true
}
]
}
"args"には、ポート番号を設定することもできます。
未入力デフォルトでは、8000番ポートが使用されます。
Dockerfileを作成
Dockerコンテナをビルドするために必要な「Dockerfile」を作成します。
プロジェクトフォルダ内で右クリック「新しいファイル」をクリックします。
ファイル名は「Dockerfile」と入力してファイルを作成します。
FROM python:3.10.9
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
RUN mkdir /[プロジェクトフォルダ名]
WORKDIR /[プロジェクトフォルダ名]
ADD requirements.txt /[プロジェクトフォルダ名]/
RUN pip install --upgrade pip && pip install -r requirements.txt
# プロジェクトフォルダ名を入れた場合
FROM python:3.10.9
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
RUN mkdir /docker_web
WORKDIR /docker_web
ADD requirements.txt /docker_web/
RUN pip install --upgrade pip && pip install -r requirements.txt
「Dockerfile」をクリックで開き、上記の内容を入力します。
FROMには、作成するコンテナイメージを指定します。
今回はpython:3.10.9でコンテナを作成しますが、お好きなバージョンを入れていただいて構いません。
[プロジェクトフォルダ名]には、ご自身で作成したプロジェクトフォルダ名を入力してください。
requirements.txtを作成
使用するpipライブラリを「requirements.txt」に作成して指定します。
プロジェクトフォルダ内で右クリック「新しいファイル」をクリックします。
ファイル名は「requirements.txt」と入力してファイルを作成します。
Django==4.1.7
「requirements.txt」をクリックで開き、上記の内容を入力します。
今回は、Djangoバージョン4.1.7を使用します。
上記の内容でフォルダとファイルが作成出来ていれば準備完了です!
コンテナを作成する
Dockerを使ってコンテナを作成します。
VSCodeメニューの「表示」ボタンをクリックして、「コマンドパレット」をクリックします。
コマンドパレットに「open」と入力して、「Dev Containers: Open Folder in Container...」をクリックして、ご自身のプロジェクトフォルダを開きます。
私の場合は「docker_web」フォルダを選択して開きます。
※もし「open」で出ない場合は、「Open Folder in Container」と入力してみてください。
プロジェクトフォルダ名に[DEV CONTAINER コンテナ名]と付いていればコンテナ作成完了です!
私の場合は[DEV CONTAINER DOCKER_WEB]となっていました。
コンテナ環境に入っているか確認
VSCodeメニューの「表示」ボタンをクリックして、「ターミナル」をクリックします。
python --version
VSCodeの下画面に上記のようなコマンドを入力できるエリアが表示されるので「python --version」と入力します。
Python 3.10.9
コンテナイメージで指定したPythonのバージョンが表示されればコンテナ環境に入れています。
pip list
Package Version
---------- -------
asgiref 3.6.0
Django 4.1.7
pip 23.0.1
setuptools 65.5.1
sqlparse 0.4.3
wheel 0.38.4
pipライブラリにも、Djangoがしっかりとインストールされています。
Djangoプロジェクトを作成する
Djangoを起動するためのプロジェクトを作成します。
django-admin startproject [プロジェクト名] .
ターミナルエリアに上記のコマンドを入力します。
[プロジェクト名]には、お好きなプロジェクト名を入力します。
# docker_projectで作成する例
django-admin startproject docker_project .
私は「docker_project」と入力して作成します。
Djangoプロジェクトを起動
いよいよDjangoプロジェクトを起動します。
VSCodeの左メニューにある「実行とデバッグ」をクリックします。
実行とデバッグの選択が「Python Django」になっていることを確認して、緑色の再生マークをクリックします。
VSCodeの右下にポップアップで表示される「Pythonインタープリターの選択」をクリックします。
コンテナイメージで指定したPythonのバージョンを選択します。
今回は、Python3.10.9を選択します。
もう一度、実行とデバッグから「Python Django」になっていることを確認して、緑色の再生マークをクリックします。
Django version 4.1.7, using settings 'docker_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ターミナルエリアに上記の内容が表示されたらDjangoプロジェクトが無事起動しています!
http://127.0.0.1:8000/ローカルアドレスにアクセスします。
無事、ブラウザでも表示が確認できました!
あとはDBをマイグレイトして、好きな用にプログラムをガシガシ書いていけばOKです!
最後に
今回は、VSCode+Dockerを使ってDjangoの開発環境を簡単に構築してみました!
このやり方を知る前は、pipenvで環境構築をしていたので中々大変でした...。
皆さんもVSCode+Dockerを使って爆速で環境構築しちゃいましょう!
作成したソースコードは、下記の「GitHubリポジトリを見る」リンクからご覧いただけます。
GitHubリポジトリを見る