Djangoを試してみたので、以下簡単にまとめ。
試してみたコードは、以下で公開しています。
※ 主に、Dockerコンテナの設定と公式ドキュメントのチュートリアル写経。
また、写経用に作成したDjango用のRemote Developmentテンプレートを以下のページで公開しています。
目次
写経
クィックスタート: Compose と Django
まずは、「Docker ドキュメント日本語化プロジェクト」の「クィックスタート: Compose と Django」を参考にDockerコンテナでDjango環境を構築してみました。
ドキュメント内容からの微調整
最新版(3.10.0)のpythonだとエラーが出て進まなかったので、python:3.9を使用。
dbコンテナが立ち上がらなかったので、docker-compose.yml
を以下のように調整しました。
db: image: postgres environment: POSTGRES_USER: postgress POSTGRES_PASSWORD: example
postgresのユーザとパスワードを追加しています。
これに合わせて、settings.py
のDATABASES
にもパスワード項目を追加。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'example', 'HOST': 'db', 'PORT': 5432, } }
※ パスワードべた書きしていますが、トライアルということで勘弁してください(汗)
表示チェック
あとはリンク先ページに従って、docker-compose up -d
で以下のように表示されれば構築完了 ↓
Quickstart: Compose and Django
Docker公式ドキュメント(本家・英語版)をチェックしたところ、こちらの方が最新のためか、postgressのパスワード設定とデータの永続化設定が追加されていました。
Djangoも最新バージョンのインストールになっています。
「Docker ドキュメント日本語化プロジェクト」からの調整
「Docker ドキュメント日本語化プロジェクト」からの変更点は以下の通り。
まず、再インストールのために生成されたcomposeexample
ディレクトリとmanage.pyを削除。
docker-compose.yml
を以下のように置き換えます。
version: "3.9" services: db: image: postgres environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
※ dbコンテナがうまく起動しなかったので、volumes設定を削除しています。
requirements.txt
を以下のように置き換え。
Django>=3.0,<4.0 psycopg2-binary>=2.8
ファイルの調整が終わったら、以下のコマンドを実行。
docker-compose run web django-admin startproject composeexample .
composeexample/setting.py
のDATABASESを以下のように変更
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'db', 'PORT': 5432, } }
表示チェック
docker-compose up -d
で以下のように表示されれば成功です。
Django用のRemote Developmentテンプレートを作成
このままだと、毎回、docker-compose exec web
をコマンドにつける事になるので、ここまでの内容を元に、Django用のRemote Developmentテンプレートを作ってみました ↓
上記テンプレートを使用しない場合は、以降のトレースで出てくるコマンドの前にdocker-compose exec web
を追加してください。
Django 公式ドキュメント チュートリアル
※ 以下、ドキュメントからの差分メモのみ記述
プロジェクトを作成する
※ Remote Developmentテンプレートを使わない場合は、作成済み (composeexample)
開発用サーバー
Remote Developmentテンプレートを使わない場合は
docker-compose.yml
のweb.commandフィールドで設定、docker-compose up -d
で起動済み
起動ログを確認する場合はdocker-compose logs web
で確認
背景画像を追加する
ドキュメントではgifの読み込みになっていますが、トレースコードでは背景色の変更だけにしました。
まとめ
「Docker公式ドキュメント」のDjango quickstartは、ほぼ写経でいけたので、お試し環境の作成にいい気がします。
「Django公式ドキュメント」のチュートリアルは、モデルの動作やビューの呼び出しの流れなどがわかりやすく解説されていて、スターターに良さげ。
あと、ドキュメント全体が最新版対応だろうと思われるので、安心感もあり、とっかかりにいいような気がします。
関連リンク
トレース済み
そのほか、気になるチュートリアル
そのうちやるかも?