2017-10-26 10 views
0

私はDocker Composeドキュメントを読んと見出しの下に最初のコード例について質問がありますよ:初心者ドッカー-作曲&ジャンゴ

新しいを作成するにはDjangoプロジェクト

を作成します。

docker-compose run web django-admin.py startproject composeexample . 

:Djangoプロジェクトは、それはあなたが次のコード行を実行する必要があることを述べて210

私が理解していないのは、docker-compose runのコンテキストでこのコマンドを実行する理由です。それはまだ私たちのローカルマシン上にフォルダを作成しています。では、なぜこれを行うにはdocker-composeに行っていますか?

答えて

1

ここのドッカーの要点は再現性です。実行されているローカルマシン上のdjango-admin.py(または、ローカルマシン上のPythonバージョン)は実行されていません。前の手順でビルドされたのは、コンテナ内にあるバイナリです。

このコンテナを持つ誰もが 'web'コンテナを実行することによって、正確にはの同じバージョンのバイナリとライブラリが実行されます。こうして、 "それは私のマシン上の問題"を取り除く。

もちろん、この例では(簡単にするために)コンテナは使用する直前にマシン上に構築されています。現実の状況では、リポジトリを使用して結果のコンテナを共有するので、チームの全員がリポジトリを使用できます。

+0

私の問題は、適切なdjangoコードで画像を構築し、その画像を変更されたコンテナから画像を構築するのではなく、コンテナを作成するために使用する方が理にかなっていますか?私はそれがドッカーの反パターンと言われています。 – qarthandso