Skip to content

Sharp007655/Learnguage-Backend

Repository files navigation

Django Template Repository

Django + PostgreSQL + NginxでDockerコンテナを起動するテンプレートリポジトリです。

このリポジトリには2種類のdocker-compose.yamlファイルが含まれています。

使い方(共通)

Warning

以下のコードを実行するには、各種ライブラリがインストールされた環境が必要です。

仮想環境を利用する場合はアクティベートしてから実行してください。

pip install -r requirements.txt
  1. docker/app/docker/db/の中に.envファイルをそれぞれ新しく作成します

    • ファイルの例は.env.exampleです。この中に書かれている環境変数は必ず指定する必要があります。

    • まずは、.env.exampleの中身を.envにそのままコピーすることをお勧めします。

    • DJANGO_SECRET_KEYは下記の手順に沿って生成してください。

      1. シェルで以下のコードを実行する

        python manage.py shell
      2. 起動したPythonシェル内で以下のように実行する

        from django.core.management.utils import get_random_secret_key
        get_random_secret_key()

        'v#wt+ag1)vuubl!9t5ca@lks402vr3#-aab*=$i3d7r+xzv&j5'のように出力されます。

        (Pythonシェルを終了するには、exit()と入力します)

      3. .envの中の[DjangoSecretKey]を先ほどの文字列に置き換える

        .envファイル内のシークレットキーはこのようになります。

        DJANGO_SECRET_KEY=django-insecure-v#wt+ag1)vuubl!9t5ca@lks402vr3#-aab*=$i3d7r+xzv&j5
        
    • データベースの接続設定は下記のように対応しています。

      (左側がdocker/app/.env、右側がdocker/db/.envに対応 / DB_HOSTにはDBコンテナのネットワークエイリアスdbを使用)

      • DB_NAME = POSTGRES_DB
      • DB_USER = POSTGRES_USER
      • DB_PASS = POSTGRES_PASSWORD
  2. 起動方法は起動環境によって異なります

起動方法(開発環境)

開発環境ではAppコンテナとDBコンテナのみ起動します。

Appコンテナのサーバー起動にはDjangoのRunserverが使用されています。

Warning

ここから先の操作はDocker Engineが起動している必要があります。

  1. イメージをビルドする

    下記、コマンドを実行して開発環境イメージをビルドします。

    docker-compose -f docker-compose-develop.yaml build
  2. コンテナを起動する

    下記、コマンドを実行してコンテナを起動します。

    docker-compose -f docker-compose-develop.yaml up -d

Note

ローカルで起動した場合、 http://localhost:8000 で接続できます。

起動方法(本番環境)

本番環境ではWebコンテナとAppコンテナ、DBコンテナが起動します。

Appコンテナの起動方法にはGunicornが使われており、WebコンテナとAppコンテナはソケット通信で接続されています。

Tip

DBサーバーにRDSなどを使用して別途起動する場合にはDBコンテナを削除し、docker/app/.envDB_HOSTにDBサーバーのDNSを指定する必要があります。

Warning

ここから先の操作はDocker Engineが起動している必要があります。

  1. イメージをビルドする

    下記、コマンドを実行して開発環境イメージをビルドします。

    docker-compose -f docker-compose-production.yaml build
  2. コンテナを起動する

    下記、コマンドを実行してコンテナを起動します。

    docker-compose -f docker-compose-production.yaml up -d

Note

ローカルで起動した場合、 http://localhost:80 で接続できます。

注意事項

  • このリポジトリのライセンスはMIT Licenseです。

    必要がなければ、LICENSEファイルを削除してください。

  • 開発環境でAppコンテナのシェル操作をする場合、各コマンドの前にdocker container exec django-appをつけて実行する必要があります。

Copyright

このテンプレートリポジトリはSoma Andoによって制作されました。

Django Template Repository|GitHub

Soma Ando's Portfolio

About

TwoGate DevCamp 2024 Summer #007655「Learnguage!!!」バックエンド

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •