概要です
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にアクセスしてデフォルトページが表示されれば完了です!