2016-10-31 3 views
0

私はthe tutorial hereに従っていますが、理由は分かりませんフラスコredisはDockerfileからピップされますが、docker-compose.ymlからも入手できます。Dockerは冗長性を構成していますか?

複数の画像をマージするのに、を使用し、これらのマージされた画像が参照されたとか、viというdocker-compose.ymlという画像があると考えました。

だから私の理解では、作曲が自分の画像を経由してフラスコRedisのをインストールし、単一の容器でそれらをマージすることでした。

...またピップコマンドでインストールされているフラスコRedisのとして、何が起こっているかを、ここで何が起こっているかの任意のアイデアではないようですけど?

ありがとう、

アントワン。

答えて

2

あなたのComposeの理解は間違っています。イメージをマージしません。

Composeは、一緒にアプリケーションを構成する別々のコンテナを管理します。レディスサーバー用に1つのイメージがあり、フラスコを使用するWebアプリケーション用に1つのイメージが必要です。各イメージはコンテナを作成するために使用されるため、2つのコンテナになります。

pip install redis "redis server"はインストールされません。これは、redisサーバーへのリクエストに使用されるpythonクライアントをインストールします。

+0

Hum、これは実際には大きなパラダイムシフトです...つまり、多くの依存性(すべて複雑なインストール方法)と大きなテストフレームワークを持つ大きなアプリケーションを開発する場合、ベストプラクティスコードのクローン、依存関係のインストール(またはコンパイル)、フレームワークのテストを大きなDockerfileに取り込むことですか? – arennuit

+0

私が使用する多くの依存関係はそれぞれのドッカーイメージを持っていますが、私がよく理解していれば、依存関係をすべて一緒にするために、依存イメージ(つまり複雑なもの)をベースイメージとして選択し、手作業による他の依存関係(コードクローンとテストフレームワークのインストールに加えて)?そうですか? – arennuit

+0

また、コンテナではなくホスト上のコードを複製し(ホストフォルダをコンテナ内のボリュームとしてマウントしますか?) – arennuit