ホームページ >ウェブフロントエンド >jsチュートリアル >開発中の Docker: エピソード 1
このシリーズでは、開発で docker を使用する動機と利点を探っていきます。 Ruby on Rails と React の開発に焦点を当てて、Ruby on Rails を使用して前進するのに役立つ毎日のヒントを提供します。
このシリーズでは、Docker の中心的な概念については説明しません。 Docker についてまだ知らない場合は、Docker の公式ドキュメントを読んでから戻ってくることを強くお勧めします。
モチベーション
これは個人 (そしてチーム!) の経験です。あなたも同じような状況に遭遇するかもしれません。これは、前進して最初の一歩を踏み出すのに役立つかもしれません。
数か月前まで、Ruby on Rails、最小限の Ruby アプリ、React アプリを開発するための私の標準セットアップは非常にシンプルでした。
Ruby/Ruby on Rails の場合、chruby、ruby-install (そして必要な Ruby バージョン、たとえば 2.3、2.5、さらには 2.6!) をインストールし、プロジェクトのクローンを作成し、バンドラー、Postgres を使用して gem をインストールしました (なぜなら、私たちは主に Postgres を使用しています)、準備は完了しました。もちろん、Redis または他のデータベースが必要な場合は、それをインストールする必要がありました。
同様に、React プロジェクトの場合も、ノードをインストールして依存関係をインストールするだけです。 homebrew (Linux を使用している場合は apt-get) を使用してインタープリターや依存関係などをインストールするこのプロセスは簡単ですが、時間がかかります。
1 か月前、私には完了しなければならないタスクがありました。それは、Ruby 1.9.3 に加えて Rails 3 アプリの小さなバグを修正することでした。これは、Ruby の新しいバージョンよりも少し難しかったです。インタプリタ自体のためではなく、プロジェクトの依存関係のためです。時間が経つと、依存関係が原因で古い依存関係のインストールが難しくなる可能性があります。コンピューターに新しいバージョンの依存関係が存在する可能性があり、古いものをインストールすると時間がかかる可能性があります。
少し考えた後、アプリを Docker 化することにしました。正直に言うと、インタープリターや依存関係のバージョンと格闘するよりも時間がかかったのかどうかはわかりませんが、結果は報われました。バグが簡単に修正されただけでなく、それ以来、私が取り組んでいるすべてのアプリを Docker 化することに決めました (後で説明するように、日常的に使用する一部のアプリも含めて)。現在、私はローカル開発のみに Docker を使用しています。ネイティブ設定は必要なくなりました。
メリット
利点の一部は明白です (特に、すでに Docker に興味がある場合) が、より強力なケースを明らかにするために、とにかくそれらを確認していきます。
プロジェクト全体が、システムの観点からどのように設定されているか、つまりデータベースやサービスなどについて説明します。
新しい開発者は簡単にプロジェクトに参加でき、コマンドを実行するだけで準備完了です。
ローカル環境が変わってもアプリは変わりません。通常、たとえばバンドラーの場合は問題ありませんが、時間の経過とともに変更される可能性のあるシステム内で他のバイナリまたはライブラリを使用することになる可能性があります。
質問
これらは私が自分自身に問いかけた質問です (そしてあなたも同じように抱いているかもしれません):
Docker イメージによって大量のディスク領域が占有されることはありませんか?
はい、そうでしょう。ただし、必要に応じて、それらを削除し、必要なときに再作成することができます。それは大したことではありません。毎回ビルドしたくない場合は、イメージをリポジトリにプッシュできます (Docker Hub が例です)。
パフォーマンスについてはどうですか?多くのリソースを消費しますか?
短い答え: いいえ。これらは通常のプロセスであり、すべての要件をネイティブにインストールした場合に消費するのと同じリソースを消費します。 docker stats を実行すると、自分自身を見つけることができます!
他にご質問はありますか?ご連絡ください!
結論
私にとってバランスはプラスでした。 Docker を使用して以来、開発時間、立ち上げ、実行などの点で状況は変わりません。さらに、すでに述べた利点もあります。
次のエピソードにご参加ください!
以上が開発中の Docker: エピソード 1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。