Help us understand the problem. What is going on with this article?

【 Docker+Nginx+Django+RDS】WEBアプリができるまで①Djangoのようこそページへたどり着くまで

前置き

独学で、子供の成長アプリを作った時のことを、記録として残していきます。
開発環境はMac。DBはRDSで Postgresを使います。
間違っているところなどあれば、ご連絡お願いします。

 ①Djangoのようこそページへたどり着くまで <--ここです
 ②NginxでDjangoのようこそページへたどり着くまで
 ③カスタムユーザーを作ってadminにたどり着く
 ④ログインログアウトをしよう
 ⑤ユーザー登録(サインイン)機能を作ろう
 ⑥ユーザーごとのデータ登録できるようにする〜CRU編
 ⑦ユーザーごとのデータ登録できるようにする〜削除編
 ⑧画像ファイルのアップロード
 ⑨身長体重を記録する@一括削除機能つき
 ⑩成長曲線グラフを描いてみよう
 ⑪本番環境へデプロイ+色々手直し

Goal

Djangoのようこそページへたどり着く

前提

DockerとDocker-composeは開発環境に入っていること。
MacだとHomebrewを使えば簡単に入る。

Dockerの設定

たぶん、あまり捻りは無い。

Dockerfile
FROM python:3.7

ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirement.txt
Django==2.2.2
psycopg2==2.8.4
docker-compose.yml
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の設定で
パブリックアクセシビリティを「はい」にしないとダメなので注意。

setting.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': '*****',
        'PASSWORD': '*****',
        'HOST': '*****',
        'PORT': 5432,
    }
}

さあ確認

Dockerを起動

docker-compose up

localhost:8000へアクセスする
スクリーンショット 2020-02-11 13.02.47.png

quantity82
日々勉強中。 都内在住。長男長女の子を持つ会社員。 https://twitter.com/petrocket1
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした