はじめまして、株式会社アドグローブ ソリューション第二事業部の石塚です。
今回は、3年ほどLaravelの開発経験を積んだ私がDockerを使ってPythonのフレームワークであるDjangoをインストールする方法をお話します。
- はじめに
- 1. プロジェクトフォルダを作成
- 2. Dockerfileを作成
- 3. requirements.txtの作成
- 4. docker-compose.ymlを作成
- 5. Djangoプロジェクトの生成
- 6. DB情報の更新
- 7. docker-compose upの実行
- 8. 起動確認
はじめに
私が普段開発で使用しているLaravelは、ユーザー数が多くコミュニティも活発なため、定期的なバージョンアップや様々なトピックが投稿されています。公式のドキュメントもわかりやすく、とても開発がし易いフレームワークです。
しかし、近年Pythonの人気が上昇しており話題になることが多く、興味が湧きました。
pythonを調べていく中でデータサイエンスや機械学習などの分野で使われていること、様々なフレームワークが存在していることを知りました。
私自身データサイエンスや機械学習などは専門外の分野なので、WebアプリケーションフレームワークであるDjangoを学習しようとと思い立ったのが今回の経緯となります。
ところで、皆さん開発用のマシンは何を使われているでしょうか?
Macを利用している方は、pythonが元からインストールされているかと思われますが、
Macにプリインストールされているpythonはバージョンが古く、開発要件を満たせない場合があります。
今回解説する内容はDockerを利用して開発環境の構築を行うので、マシンやOSに左右されることなく手軽に環境を再現することができるというメリットもあります。
気になった方は是非こちらの記事を参考にDjangoを試していただけると嬉しいです。
それでは、構築の手順を追っていきます。
1. プロジェクトフォルダを作成
任意の場所にプロジェクトフォルダを作成してください。
今回はcode
フォルダとしました。
2. Dockerfileを作成
code
フォルダ内にDockerfile
ファイルを作成します。
下記はDockerfileの記述例です。
FROM python:3.9-buster ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/
3. requirements.txtの作成
code
フォルダ内にrequirements.txt
を作成します。
下記はrequirements.txtの記述例です。
Django>=1.8,<2.0 psycopg2
4. docker-compose.ymlを作成
code
フォルダ内にdocker-compose.yml
を作成します。
下記はdocker-compose.ymlの記述例です。
version: '3' services: db: image: postgres environment: POSTGRES_DB: "db" POSTGRES_HOST_AUTH_METHOD: "trust" web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
5. Djangoプロジェクトの生成
ターミナルでcode
フォルダへ移動し、Djangoプロジェクトの生成コマンドを実行します。
docker-compose run web django-admin.py startproject composeexample .
6. DB情報の更新
code/composeexample/settings.py
を開き、DATABASES
の設定をsqlite3
からpostgres
の情報に変更します。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } }
7. docker-compose upの実行
ターミナルでcode
フォルダへ移動し、docker-compose up
を実行します。
docker-compose up
8. 起動確認
下記ローカルホストのURLへアクセスし、DjangoのWelcome ページが表示されれば成功です。
http://localhost:8000

以上で、環境構築完了です。
Dockerを利用することで、環境構築の手間を軽減し、他の開発者との共有やデプロイも容易になりますので是非活用してみてください。
最後までご覧いただきありがとうございました!
現在アドグローブでは、さまざまなポジションで一緒に働く仲間を募集しています。
詳細については下記からご確認ください。みなさまからのご応募お待ちしております。
hrmos.co