DjangoとReactの開発環境をDockerを用いて構築しました! フォルダ構成、docker-compose.ymlの中身を紹介しようと思います。
フォルダ構成
Djangoのプロジェクトはbackendフォルダに配置しています。
Reactのプロジェクトはfrontフォルダに配置しています。
Dockerfileはdockerフォルダにすべて配置しています。
.
├── backend
├── front
├── docker
│ ├── node
│ │ └── Dockerfile
│ └── python
│ └── Dockerfile
├── docker-compose.yml
└── requirements.txt
Dockerfile
node/Dockerfile
FROM node:16-alpine
WORKDIR /usr/src/front
RUN apk update
python/Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /backend
WORKDIR /backend
ADD requirements.txt /backend/
RUN pip install -r requirements.txt
ADD . /backend/
docker-compose.yml
version: '3'
services:
backend:
build:
context: .
dockerfile: ./docker/python/Dockerfile
container_name: backend
volumes:
- ./backend:/backend
command: python3 manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
tty: true
front:
build:
context: .
dockerfile: ./docker/node/Dockerfile
container_name: front
volumes:
- ./front:/usr/src/front
command: sh -c "cd photo-app && yarn start"
ports:
- "3000:3000"
tty: true
requirements.txt
Pythonのパッケージでインストールしたいものはこのファイルに記載します。
また、Djangoの最新版はこの記事を書いている時点でバージョン4なのですが、バージョン3をインストールしたかったため、Django<4と記載しています。
Django<4
Dockerイメージの作成
$ docker-compose build --no-cache
プロジェクトを作成
Django
例として、プロジェクトの名前をphotoにしています。
$ docker-compose run backend django-admin startproject photo .
React
プロジェクト名はDjangoと同じくphotoです。
$ docker-compose run --rm front sh -c "npx create-react-app photo"
上記のコマンドのを実行した後、backendフォルダと、frontフォルダの中にプロジェクトが出来上がります!
コンテナの立ち上げ
$ docker-compose up -d
上記のコマンドを実行後、localhost:8000と、localhost:3000へアクセスするとDjangoとReactが立ち上がっているのが確認できます。
※localhost:3000の方のReactは、少々時間がかかるかもしれません。
localhost:8000(Django)
localhost:3000(React)
コンテナの終了
$ docker-compose stop