はじめに
Djangoプロジェクトを始める際、必要なディレクトリやファイルを手動で作成するのは少し手間がかかります。
そこで、Djangoプロジェクトと関連するDockerファイルを一括で作成できるシェルスクリプトを作成しました!
本記事は、未来の自分への備忘録として技術検証を行い、その成果や学びを記録していきます。
ディレクトリ構成について
今回作成したシェルスクリプトを実行すると、以下のようなディレクトリ構成が作成されます。
my_django_project/
├── Dockerfile
├── manage.py
├── myproject/ # Djangoプロジェクトのディレクトリ
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── myapp/ # Djangoアプリケーションのディレクトリ
├── __init__.py
├── admin.py
├── apps.py
├── migrations/ # マイグレーションファイル
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
└── requirements.txt # 必要なパッケージが記載されたファイル
作成したシェルスクリプト
以下のシェルスクリプトを実行すると、Djangoプロジェクトとアプリケーションの作成から、必要なDockerファイルの設定まで自動で行います。
必要なDockerファイル(Dockerfile
)と依存パッケージ(requirements.txt
)が自動で作成されます。
#!/bin/bash
# プロジェクト名の設定
PROJECT_NAME="my_django_project"
APP_NAME="myapp"
# プロジェクトディレクトリを作成
mkdir $PROJECT_NAME
cd $PROJECT_NAME
# Djangoのインストール
pip install django
# Djangoプロジェクトの作成
django-admin startproject myproject .
# Djangoアプリの作成
python manage.py startapp $APP_NAME
# Dockerfileの作成
cat > Dockerfile << EOF
# ベースイメージ
FROM python:3.9-slim
# 作業ディレクトリ
WORKDIR /app
# 必要なファイルをコピー
COPY . /app
# 必要なパッケージをインストール
RUN pip install -r requirements.txt
# Djangoアプリケーションの実行
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
EOF
# requirements.txtの作成
cat > requirements.txt << EOF
django
EOF
# 初期設定: settings.pyの変更 (任意でデータベースなど設定を追加できます)
# 完了メッセージ
echo "Djangoプロジェクトが作成されました。"
my_django_project
というディレクトリが作成され、その中にDjangoプロジェクトとアプリが自動で生成されます。
実際にやってみた
1. シェルスクリプトを実行してDjangoプロジェクトを作成
まず、シェルスクリプトをファイルとして保存します。
例えば、create_django_project.sh
という名前で保存します。その後、ターミナルを開き、以下のコマンドで実行します。
chmod +x create_django_project.sh
./create_django_project.sh
これにより、my_django_project
というディレクトリ内に、Djangoプロジェクトと関連ファイルが作成されます。
2. Dockerイメージをビルド
次に、作成したプロジェクトディレクトリに移動し、Dockerイメージをビルドします。以下のコマンドを実行してください。
cd my_django_project
docker build -t my-django-app .
これにより、my-django-app
という名前のDockerイメージが作成されます。
docker images
コマンドで確認すると、正常にイメージが作成されていることが確認できます。
➜ my_django_project git:(main) ✗ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-django-app latest 972fc2b62f4c 57 minutes ago 193MB
3. コンテナを起動
ビルドが完了したら、以下のコマンドでコンテナを起動します。
docker run -p 8000:8000 my-django-app
これで、Djangoアプリケーションがポート8000で起動します。
4. ブラウザで確認
ブラウザを開き、以下のURLにアクセスしてDjangoが正常に動作していることを確認します。
http://localhost:8000
Djangoの初期ページ("The install worked successfully!"
と表示されるページ)が表示されれば、Djangoアプリケーションが正常に動作しています。
シェルスクリプトを使用してDjangoプロジェクトのセットアップ自動化の検証は大成功と言えます!
まとめ
このシェルスクリプトを使うことで、DjangoプロジェクトのセットアップとDocker環境の準備を簡単に行うことができます。
手動で行う作業を減らすことで、素早くDjangoアプリケーションの開発を始められるので、非常に便利です。
この記事が、誰かの技術的な支えになれば幸いです!
関連記事