0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerがやっぱり苦手(vオプション)

Posted at

というお話です。
ぶっちゃけ慣れてる人からすると「なんだあ、てめぇ」案件でしょうが私は本気で苦手です。
苦手なのですぐ頭が忘れようとするため、残す意味合いで書きます。

dockerの-vオプションが使えなく困った

簡単にまず、vオプションの概要を説明(間違っているかもしれない)をすると
docker上で管理しているフォルダ(の対象部分)をローカルのフォルダと対応させる
感じだと思います。
別にvオプションじゃなくてもDockerfileに書き込んでおけば、立ち上げ時に自動でつながるそうですが...(セッシャヨクワカラナイ)

という事で今回の目標はvオプションを使った動機です。

結局何で詰まったの?

私、windows用のdockerを用いておりまして、windowsだとフォルダを指定するときに、区切りは \ であらわされます。
ここで詰まっておりました。

構成

APP
|-docker-compose.yml
|-Dockerfile
|-requirements.txt

場所はどこでもよいです。

Dockerfile
FROM python:3

ENV PYTHONUNBUFFERED 1

RUN mkdir /code

WORKDIR /code

ADD requirements.txt /code/

RUN pip install -r requirements.txt

ADD . /code/
docker-compose.yml
version: '3'

services:
  app:
    build: .
    command: python manage.py runserver
    depends_on:
      - db
  db:
    image: mysql:5.7
requirements.txt
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使ってみたいなあ、という人は一度お試しください

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?