0

これはコンテナを使用したマイクロサービスの提供と開発についての質問です。コンテナ(Dockerコンテナ)のコンセプトを使用してアプリケーションを配信する方法

コンテナのコンセプトを使用してアプリケーションをどのように配信しますか?すべてのビルドでアプリケーションでDockerコンテナを生成する必要がありますか?ローカルビルドでさえ?

Spring Boot app、Node.jsアプリ、または別の種類のアプリをDockerコンテナにコピーする必要がありますか?または、アプリケーションにボリュームをマウントするのが最善の方法でしょうか?

コンテナを使用してローカル環境で開発する必要がありますか?例えばSpring Bootでは、EclipseやIdeaのようなIDEでApplication.classを実行し、ローカル環境でコードをテストするのが最善の方法でしょうか?

答えて

0

をドッキングコンテナを使用して展開する場合は、ビルドシステムでドッカーイメージが生成され、ステージング環境でこれらのイメージを実行する必要があります。

ローカル開発は別の話です。

  1. ローカルビルドの場合でも常にドッカーイメージを作成してください。利点は、最終的に実稼働環境に展開されるものと同じコンテナに対してテストするという意味で、ローカルテストが「本物」であることです。明白な欠点は、ドッカーのビルドが遅くなることです(キャッシュしても)。

  2. プロダクションイメージと同じ実行時環境でドッキングイメージを作成しますが、実際のコードをそのイメージにマウントします。いくつかの人々は、このアプローチが好きです。なぜなら、本物のランタイム環境を持っているとイメージを構築するのに多くの時間を費やすことの間に、より良いトレードオフを達成するからです。また、同僚と環境を共有できるという利点もあり、誰もが同じランタイム環境でテストしています。

  3. 現在のローカル環境を使用して、ローカル開発でドッカーを忘れてしまいます。これは最も簡単なアプローチであり、多くのエンドツーエンドテストをローカルで実行する必要がない場合は、これも良い方法だと主張します。ローカルで行う必要があるのは、コードを記述して単体テストを実行するだけで、実際のコンテナでエンドツーエンドのテストを実行するための別のステージング環境がすでに存在している場合は、 。要するに

は、ローカルにドッキングウィンドウを実行すると、「本物」のエンドツーエンドのテストを行うための安価な方法ですが、それは複雑さを追加し、率直に言ってすることはできません(とはならない)良いステージングセットアップを交換してください。

関連する問題