というお話です。
ぶっちゃけ慣れてる人からすると「なんだあ、てめぇ」案件でしょうが私は本気で苦手です。
苦手なのですぐ頭が忘れようとするため、残す意味合いで書きます。
dockerの-vオプションが使えなく困った
簡単にまず、vオプションの概要を説明(間違っているかもしれない)をすると
docker上で管理しているフォルダ(の対象部分)をローカルのフォルダと対応させる
感じだと思います。
別にvオプションじゃなくてもDockerfileに書き込んでおけば、立ち上げ時に自動でつながるそうですが...(セッシャヨクワカラナイ)
という事で今回の目標はvオプションを使った動機です。
結局何で詰まったの?
私、windows用のdockerを用いておりまして、windowsだとフォルダを指定するときに、区切りは \ であらわされます。
ここで詰まっておりました。
構成
APP
|-docker-compose.yml
|-Dockerfile
|-requirements.txt
場所はどこでもよいです。
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '3'
services:
app:
build: .
command: python manage.py runserver
depends_on:
- db
db:
image: mysql:5.7
Django
上記3種類のファイルが必要になります。
上記ファイルが準備できれば後は実行していくだけです。
実行コマンド、流れ
全体の流れは以下のとおりである
Ⅰ imageの作成(build)
Ⅱ コンテナの作成(run)
Ⅲ ローカルからexecコマンドによってdjangoの立ち上げ(django-admin)
とりあえず作成流れを把握するため、非常に単純な立ち上げです。
実行した実際のコードは以下のとおりである。
docker build -t test .
docker run -itd -v C:/~~/~~/~~/Todo_app:/code --name django-test-3 test
docker exec django-test-3 django-admin startproject test .
~~の部分はフォルダ名を入れてほしい(各個人によって変わります)
build時に「-t」オプションをつければimageに名前を付けれます。
-vオプションの後ろが
ローカル:ドッカー上
のように書いて紐づける。
(紐づけることで後に行うstartprojectで作られるフォルダが
ローカルに反映されたりする)
ちなみにdjango-test-3はコンテナ名です。なので、自由に変更可能です。
まとめ
多分ほかの人より一番簡単な環境を作れたと思います。
(もっとも初心者向けでしょう!!)
windowsでdocker使ってみたいなあ、という人は一度お試しください