0
0

『Docker × Django』とりま、開発環境をつくるゾイ!

Posted at

概要です

pythonのフレームワークであるdjangoを触ってみたかったので、とりあえずdockerで環境構築してみます。
※ docker公式サイトをもとに作成してます。docker公式のままやると、エラーが発生したので若干変更しています。

手順です

1. ディレクトリを作成する

mkdir django-sample
cd django-sample

2. Dockerfileを作成する

vi Dockerfile

# pythonは現時点で最新版の3系
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を作成する

vi requirements.txt

# Djangoは現時点で最新版の5.1以上
Django>=5.1
psycopg2

4. docker-compose.ymlを作成する

vi docker-compose.yml


# dockerのバージョンによってはversion記述でwarningになるので注意
# version: '3'

services:
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres
    ports:
        - "5432"
    environment:
        - POSTGRES_DB=postgres
        - POSTGRES_USER=postgres
        - POSTGRES_PASSWORD=postgres

公式サイト同様、データベースはpostgresを使用してます。
POSTGRES_PASSWORDを記載しないとdockerの立ち上げで失敗します...

5. docker立ち上げ

docker compose build
docker compose run web django-admin startproject composeexample .

6. composeexample/settings.pyを編集

vi composeexample/settings.py

# DATABASES部分を編集
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

7.カラム作成と環境立ち上げ

# コンテナへGO
docker compose exec web bash

# カラム作成
# 失敗する場合は以下試してみてください
# ・docker compose psでdbコンテナが動いていることを確認
# ・dbのパスワードが同一か確認(docker-compose.ymlとsettings.py) など...
python manage.py migrate

# superuser作成
python manage.py createsuperuser

# run server
python manage.py runserver 0:8000

起動後、localhostにアクセスしてデフォルトページが表示されれば完了です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0