python(django)-docker環境
djangoの開発環境をdocker-composeを使って構築する手順をメモに残しておきます。
基本的にpythonは、venvなどで仮想環境を構築して開発しますが、今回は、dockerを使って環境整備をしてみたいと思います。
今回の目標はdocker環境を作成して、そこにpipモジュールのinstallを行う形にしたいと思います。
フォルダ構成
今回のファイル構成は以下のような形式にしましょう。
$ tree -L 2 ├── app │ ├── Dockerfile │ ├── app │ ├── requirements.txt ├── docker-compose.yml
Dockerfileの中身
FROM python:3.7 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ ADD . /code/
解説:FROMでは、docker imageを指定しています。今回はpython3.7を指定しました。
docker-compose.ymlの中身
version: '3' services: api: build: app/ command: sh -c "cd /code/; pip install -r ./requirements.txt; python3 ./manage.py runserver 0.0.0.0:8000" volumes: - ./app:/code tty: true ports: - "8000:8000"
解説:volumesで自分の配下にあるコードをdocker内に永続化しています。 ここで、macの環境のsourceコードを変更することで、docker内も同じく変更が加えられる形になります。
tty: trueは、特に不要ですが、コンテナが終了しないようにおいています。
ports: で8000をpcの8000にマッピングしています。ですので、http://127.0.0.0.1:8000でブラウザでアクセスすることでdjangoの表示を確認できます。
docker-composeを起動してみる
下記のコマンドでdocker-composeを起動しましょう。
$ docker-compose up -d