今回は docker を使って postgres と django を使ったアプリの開発環境を作成する方法をここにメモしたいと思います。
docker-compose とは
docker-compose は複数のコンテナからなるシステムの構築をするためのツールと考えています。
docker-compose を使うまでのステップ
例えば、postgres と django を使ったアプリを作成する場合は以下のステップを踏みます。
作業フォルダ作成
作業フォルダを作成します。
Dockerfile 作成
Dockerfile は、そのイメージを構成するビルドコマンドを定義します。
# syntax=docker/dockerfile:1 FROM python:3 ENV PYTHONUNBUFFERED=1 WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
Dockerfile に記載している requirements.txt 作成
requirements.txt を作成し、python の必要なライブラリを追加します。
Django>=3.0,<4.0 psycopg2-binary>=2.8
docker-compose.yml 作成
docker-compose.yml というファイルを作成します。
アプリを作成するサービスを記述します。
version: "3.9" services: db: image: postgres volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
Django プロジェクト作成
django プロジェクトを作成します。
$ docker-compose run web django-admin startproject composeexample .
以下のコマンドを実行します。
$ docker-compose up -d
実行中のコンテナ確認
web ブラウザを立ち上げ http://localhost:8000/ にアクセスして以下のような表示がされたら成功です。