2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術検証:DjangoプロジェクトとDocker関連ファイルを一括で作成するシェルスクリプトを作成してみた

Last updated at Posted at 2024-12-07

はじめに

Djangoプロジェクトを始める際、必要なディレクトリやファイルを手動で作成するのは少し手間がかかります。

そこで、Djangoプロジェクトと関連するDockerファイルを一括で作成できるシェルスクリプトを作成しました!

スクリーンショット 2024-12-08 7.06.39.png

本記事は、未来の自分への備忘録として技術検証を行い、その成果や学びを記録していきます。

ディレクトリ構成について

今回作成したシェルスクリプトを実行すると、以下のようなディレクトリ構成が作成されます。

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)が自動で作成されます。

create_django_project.sh
#!/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プロジェクトを作成

まず、シェルスクリプトをファイルとして保存します。

スクリーンショット 2024-12-08 7.18.25.png

例えば、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イメージが作成されます。

スクリーンショット 2024-12-08 7.23.03.png

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で起動します。

スクリーンショット 2024-12-08 7.25.20.png

4. ブラウザで確認

ブラウザを開き、以下のURLにアクセスしてDjangoが正常に動作していることを確認します。

http://localhost:8000

Djangoの初期ページ("The install worked successfully!" と表示されるページ)が表示されれば、Djangoアプリケーションが正常に動作しています。

スクリーンショット 2024-12-08 7.26.18.png

シェルスクリプトを使用してDjangoプロジェクトのセットアップ自動化の検証は大成功と言えます!

まとめ

このシェルスクリプトを使うことで、DjangoプロジェクトのセットアップとDocker環境の準備を簡単に行うことができます。

手動で行う作業を減らすことで、素早くDjangoアプリケーションの開発を始められるので、非常に便利です。

この記事が、誰かの技術的な支えになれば幸いです!

関連記事

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?