2016-08-18 18 views
1

私は、Java/SpringベースのアプリケーションでDockerを使用する方法を学習しています。ローカル開発でDockerを使用する

チュートリアルをすばやく調査して読んだ後、私は日常の開発でDockerを使用することに疑念を抱いています。私は、CIやプロダクション環境については、ローカルでしか話していません。

通常、実行します。 mvn(run goal)を使ってTomcatを埋め込みました。ドッカーのアプローチでは、アプリケーションをパッケージ化し、コンテナを再構築してから再起動する必要があります(DockerCon16のDavid Gageotはそのことを確認しました)。一見すると時間がかかります。変更が行われるたびに、新しいイメージを作成する必要があります。

Docker localyを使用する利点はどこですか?もちろん、私はアプリケーションが "生産と同じ環境"で動作していることを知っています。

答えて

7

あなたは非常に有効なポイントを提出しましたが、あなたのシナリオには本当に時間のペナルティがあります。大きな利点は、が "自分のマシンで動作する"ときです。オペレーティングシステムに関係なく、ステージング、QAテスト環境、運用環境でうまく動作するはずです。

私はjava spring開発用にローカルにdockerを使用していますが、主にビルド​​/プロジェクトが依存するデータベースとメッセージングシステムをすばやく一貫して呼び出すためです。たとえば、MongoDB、MySQL、ElasticSearch、RabbitMQに依存するアプリケーションがあります。私はこれらのそれぞれのドッカー画像を持っており、ドッカーは1つのdocker-compose upコマンドを使用してそれらをすべて持ってくるファイルを作成します。これは私がノートパソコンに手作業でインストールする必要がないことを意味しています。異なる依存データベース、ミドルウェアなどを持つ別のプロジェクトに移動すると、より良い解決策になります。プロジェクトからプロジェクトに移動する前に、これらのデータベースを起動して、常に多くのメモリを占有していました。

Dockerは、受け入れテストスイート(これはデータベースなどの外部のものに依存します)をビルドしている場合、ローカル環境にも利点があります。また、主な利点は、一貫性が失われることです。あなたのJenkinsビルドの一部として実行します。

私のアドバイスは、ドッカーにはデポの利点があります。最近のビルドは信頼性が高く設定可能ですが、それが意味を成す場所でのみ使用してください。Dockerは銀色の弾丸ではありません。例えば。 EclipseでTomcatを実行する方がはるかに良いと判断できるかもしれません。なぜなら、デバッグはずっと簡単です(リモートデバッグセッションを必要としない)。

関連する問題