参考
https://engineer-ninaritai.com/docker-django/
このサイトの通り、Dockerfile を build して run してみる
Dockerfile を書く
FROM python:3
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code
RUN pip install -r requirements.txt
COPY . /code/
python3 を使うことを明記
Docker 空間の root に code/ というディレクトリを作る
通常の空間に準備されている requirements.txt
から
Docker 空間の root の code/ に複製する
そしてその Docker 空間で今複製された requirements.txt
を使い
必要なライブラリをインストールする
そして、その code/ ディレクトリを更新する
Django==3.0.7
requirements.txt には Django のバージョンだけ書いておく
Dockerfile を使って build する
docker build -t djangotest .
djangotext という名前で . にビルドする
-t は
Name and optionally a tag in the 'name:tag' format
で format のやり方らしい。
kaede0902@rooter docker-build-run-django % docker build -t djangotest .
[+] Building 9.4s (12/12) FINISHED
=> [1/6] FROM docker.io/library/python:3@sha256:437585501d11ef4b4b831cf8a6d6611eb526e327006d506bcedcfdea3fde442a 1.7s
=> => resolve docker.io/library/python:3@sha256:437585501d11ef4b4b831cf8a6d6611eb526e327006d506bcedcfdea3fde442a 0.0s
=> [2/6] RUN mkdir /code 0.2s
=> [3/6] WORKDIR /code 0.0s
=> [4/6] COPY requirements.txt /code 0.0s
=> [5/6] RUN pip install -r requirements.txt 3.0s
=> [6/6] COPY . /code/ 0.0s
=> exporting to image 0.4s
=> => exporting layers 0.4s
=> => writing image sha256:8397371ae76189356d86a824c3c276237ca8ceb326977d081d2253e1be05411e 0.0s
=> => naming to docker.io/library/djangotest 0.0s
作成できた。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
djangotest latest 8397371ae761 2 minutes ago 904MB
ファイルにはないっていないが、 確認できる。
docker image を使って django admin を使って django project を作る
docker run djangotest
djangotest django-admin startproject mysite
djangotest django-admin startproject mysite
zsh: command not found: djangotest
:/code djangotest django-admin startproject mysite
zsh: no such file or directory: :/code
動かない
現在のディレクトリと docker コンテナの紐付けがひつようらしい。
pwd
/Users/kaede0902/code/docker-build-run-django
docker run -v \
/Users/kaede0902/code/docker-build-run-django:/code \
djangotest django-admin startproject mysite . \
これで錬成できる
ls
Dockerfile manage.py mysite requirements.txt
manage.py と mysite ができている
docker run する
docker run -v \
/Users/kaede0902/code/docker-build-run-django:/code \
-d -p 8000:8000 djangotest \
python manage.py runserver 0.0.0.0:8000
これで裏で動く。
Top comments (0)