質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2202閲覧

djangoとdockerの組み合わせでのstartappについて質問があります

chapin

総合スコア80

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/07/05 09:58

編集2020/07/05 10:01

現在djangoをdockerを通じて作成する学習をしています。
djangoをdockerのコンテナで作成する際に以下のコマンドを複数の記事から見つけています。これは個人的に必須ではないと思いますが、これを実行しないと不都合があるのでしょうか?

docker-compose run web python manage.py startapp blog

上記のコードを実行している例

docker-compose.ymlでアプリケーションサーバーのサービス(ここではwebとする。)は、以下のようにdjangoのプロジェクトがコンテナ内の"とある"ディレクトリ(ここでは/code/)にマウントされます。

version: '3' services: db: image: postgres web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: <-プロジェクトが/code内にマウントされている - .:/code ports: - "8000:8000" depends_on: - db

アプリケーションサーバーを担うコンテナにプロジェクトがマウントさえすれば、私はアプリケーションサーバーが適切に稼働すると思ってます。だからdockerに関するコマンドとは離れて例えば、

python manage.py startapp blog

のような形で開発をしても問題ないと思ってしまったのですが、これはおかしいのでしょうか。まだdockerのメリットを完全に理解できていないのでこのような質問をしている可能性があるのかもしれません。docker-composeコマンドでstartappする必要性がある場合はご指摘くださると助かります。

なお、python manage.py startapp blogで作成した場合でもdocker-compose upを実行してもエラーが生じないことは確認できています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

開発環境に Python などのインストールが不要になります

console

1docker-compose run web python manage.py startapp blog

この方法を使うと、
Docker のホストのコンピューターに Python をインストールする必要がなくなります

さまざまなプロジェクトの開発を行っていると、
たとえば開発用の PC にさまざまな言語や異なるバージョン、利用するパッケージが散乱し、
セットアップが大変になってきます

もし、プロジェクトごとの開発環境のセットアップが
Docker のイメージのプルひとつで完了するとしたら、とても便利です

開発環境の設定に左右されずに同じ結果を保証しやすくなります

yaml

1 web: 2 build: .

Dockerfile を使用しているので、Dockerfile の内容次第ですが、
ビルドに使われるすべてのツールのバージョンを固定しているとすれば、
開発環境の設定状況に左右されずに、
コマンド実行時の結果を保証しやすくなります

たとえば、Django の新バージョンがリリースされたときに、
もしかすると、次のコマンド実行時の振る舞いが変わっているかもしれません:

console

1python manage.py startapp blog

しかし、Dockerfile 内で Django のバージョンを固定しておけば、
そのような仕様変更の影響をうけず、同じ結果をある程度保証しやすくなります:

dockerfile

1FROM python:1.10.4-python3

投稿2020/07/05 11:08

y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chapin

2020/07/06 05:17

開発環境に左右されないことを考えるととても重要なコマンドだと理解しました。ご指摘いただき周辺の内容を調べて遅れてしまい申し訳ございませんでした。 そして丁寧に教えてくださりありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問