はじめに
友人とこれからのアプリ開発について話したり、ハッカソンでオススメを聞いたり、ネットに転がっている教材をみて...
Django
に決定されたので、環境構築をしてチュートリアルをしてみようと思います。
参考にしたURL
本記事の前提条件
- windows10
- Dockerインストール済み
- VScode
さっそく環境構築
0 - 環境構築したいフォルダをVScodeで開く
1 - Dockerfile
requirements.txt
docker-compose.yml
を作成する
2 - Dockerfile
を編集する
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
3 - requirements.txt
を編集する
Django>=3.0,<4.0
psycopg2
mysqlclient
4 - docker-compose.yml
を編集する
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: 'django'
MYSQL_PASSWORD: 'django'
MYSQL_DATABASE: 'django'
ports:
- 3306:3306
volumes:
- mysql:/var/lib/mysql
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
volumes:
mysql:
driver: local
5 - imageをbuildする
VScode上で Ctrl + @ を押し、ターミナルを開きます
docker compose build
6 - コンテナを定義する
docker compose run web django-admin.py startproject <プロジェクトの名前> .
7 - コンテナを起動する
docker compose up
VScodeの ターミナル にある+ボタンを押して新しくターミナルを作る
一度、以下のコマンドでコンテナを閉じる
docker compose down
8 - setteings.pyをMySQLの設定に変更する
以下のように変更
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'django',
'PASSWORD': 'django',
'HOST': 'db',
'PORT': 3306,
}
}
9 - データベースをマイグレーションする
VScodeの ターミナル にある+ボタン
を押して新しくターミナルを作り以下を入力する
docker-compose exec web python manage.py migrate
10 - 再度imageをbuildし、コンテナを立ち上げる
VScode上で Ctrl + @ を押し、ターミナルを開きます
docker compose build
docker compose up
Djangoのチュートリアルをしてみる
ここからはこちらに入る
0 - Pollsフォルダを作る
現状の立ち上がっているコンテナを確認する
docker container ls
実行結果
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS
NAMES
c4adc638d485 docker-django-mysql-web "python3 manage.py r…" 58 minutes ago Up 58 minutes 0.0.0.0:8000->8000/tcp docker-django-mysql-web-1
949ac86dac2d mysql:5.7 "docker-entrypoint.s…" 59 minutes ago Up 59 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp docker-django-mysql-db-1
1 - コマンドを実行する時
私の場合はdocker-django-mysql-web-1
にDjangoが入っているので、こちらのコンテナにアクセスし、pollsフォルダを作成する
今回は、pollsフォルダを作成していますが、それ以外のコマンドを実行する時も、コンテナに入ってから実行してください
docker exec -it docker-django-mysql-web-1 /bin/bash
root@c4adc638d485:/code# python manage.py startapp polls
root@c4adc638d485:/code# exit
exit
ここからはチュートリアルに従ってください。
開いているチュートリアルのページが終わったら次は、こちらからチュートリアルを続けてください
https://docs.djangoproject.com/ja/5.0/intro/tutorial02/#creating-models
チュートリアルでは、mysite/settings.py
などがありますが、
6 - コンテナを定義する
ここで設定したプロジェクトの名前が当たっており<プロジェクトの名前>/settings.py
になっていると思います