前置き
独学で、子供の成長アプリを作った時のことを、記録として残していきます。
開発環境はMac。DBはRDSで Postgresを使います。
間違っているところなどあれば、ご連絡お願いします。
①Djangoのようこそページへたどり着くまで <--ここです
②NginxでDjangoのようこそページへたどり着くまで
③カスタムユーザーを作ってadminにたどり着く
④ログインログアウトをしよう
⑤ユーザー登録(サインイン)機能を作ろう
⑥ユーザーごとのデータ登録できるようにする〜CRU編
⑦ユーザーごとのデータ登録できるようにする〜削除編
⑧画像ファイルのアップロード
⑨身長体重を記録する@一括削除機能つき
⑩成長曲線グラフを描いてみよう
⑪本番環境へデプロイ+色々手直し
Goal
Djangoのようこそページへたどり着く
前提
DockerとDocker-composeは開発環境に入っていること。
MacだとHomebrewを使えば簡単に入る。
Dockerの設定
たぶん、あまり捻りは無い。
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
Django==2.2.2
psycopg2==2.8.4
version: "3"
services:
db-postgres:
image: postgres
web:
container_name: web
build: ./web #webの中のmanage.pyを見に行くよ
volumes:
- ./src:/code #srcの中をコンテナ内の/codeに繋げるよ
ports:
- "8000:8000" #portフォワード
depends_on:
- db-postgres #dbは上で指定したやつ
command: python manage.py runserver 0.0.0.0:8000 #Django開発用サーバ起動
この時点のファイルはこんな感じ。
.
├── docker-compose.yml
├── src
└── web
├── Dockerfile
└── requirements.txt
Djangoの設定
まずはプロジェクトを作る。
docker-compose.ymlがあるとこで実行。
最後のピリオドを忘れないこと。
docker-compose run web django-admin startproject mysite .
すると、以下のようにDjangoの各ファイルが作られる。
.
├── docker-compose.yml
├── src
│ ├── manage.py
│ └── mysite
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── web
├── Dockerfile
└── requirements.txt
Django上でDBの設定をする。
今回はAWSにPostgresのRDSを作ってあるので、そこに繋げる。
ローカルからAWSのRDSへアクセスする場合は、RDSの設定で
パブリックアクセシビリティを「はい」にしないとダメなので注意。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': '*****',
'PASSWORD': '*****',
'HOST': '*****',
'PORT': 5432,
}
}
さあ確認
Dockerを起動
docker-compose up