9

開発マシンでのテストに使用する docker イメージの作成に取り組んでいます。メイン アプリ用に 1 つと、外部依存関係 (postgres、elasticsearch など) ごとに 1 つ構築する予定です。メイン アプリについては、Dockerfile を作成するか、ホストするイメージをコンパイルするかの決定に苦労しています。

一方では、Dockerfile は簡単に共有したり、時間をかけて変更したりできます。一方、高度な構成 (アプリケーション プロパティ ファイルのカスタマイズ) は、単純に新しいイメージをコミットする前に vim で行う方がはるかに簡単になると思います。

どちらの方法でも同じ結果が得られることは理解していますが、どちらの方向でも長所、短所、落とし穴を探しています。

補足として、図を使用してこれをすべてまとめる予定です。このツールに対する私の第一印象は非常にポジティブです。

ありがとう!

4

2 に答える 2

13

Dockerfile の使用:

  • イメージの構築方法を説明する「監査ログ」があります。私にとって、これは、より多くの人が作業し、保守性が優先されるべき生産パイプラインで使用される場合の基本です。
  • イメージのビルド プロセスを自動化できます。これは、システム アップデートでコンテナーを更新する簡単な方法であるか、または継続的デリバリー パイプラインに参加する必要がある場合です。
  • これは、コンテナーのレイヤーを作成するよりクリーンな方法です (各 Dockerfile コマンドは異なるレイヤーです)。

コンテナーを変更して変更をコミットすることは、テスト目的や概念テストの迅速な開発に最適です。しかし、結果のイメージをしばらく使用する予定がある場合は、Dockerfiles を使用することをお勧めします。

これとは別に、ファイルを変更する必要があり、bash ツール (awk、sed...) を使用してそれを行うのが非常に面倒な場合は、ビルド プロセス中に外部から任意のファイルを追加できます。

于 2015-01-23T19:59:38.920 に答える
12

私は Javier に完全に同意しますが、dockerfile で作成された 1 つのイメージが、1 日後に同じバージョンの dockerfile でビルドされたイメージと異なる可能性があることを理解する必要があります。

ビルド プロセスで、アプリや OS などの最新の更新を自動的に取得する場合があります …</p>

現時点では、クラッシュなどを再現する必要がある場合は、dockerfile に頼ることはできません。

于 2016-01-20T11:15:55.017 に答える