Docker開発とローカル開発の違い

Dockerでの開発と、ローカル開発の違いはなんだろう。。

ローカルで開発するとは

開発者のマシン上に直接開発環境を構築し、アプリケーションを実行すること。
必要なソフトウェアや依存関係を開発者のマシンにインストールすることが必要となってくる。

ローカル開発の特徴

  1. 直接インストール:
    • 必要なソフトウェア(例: Node.js、Python、データベースなど)を開発者のマシンに直接インストールする。
  2. 環境の一貫性:
    • 開発者ごとに環境が異なる可能性があり、環境の違いによる問題が発生することがある。
  3. パフォーマンス:
    • ローカルマシンのリソースを直接使用するため、パフォーマンスが高い場合がある。

Dockerで開発するとは

Docker開発では、開発環境をコンテナ内に設定し、アプリケーションをそのコンテナ内で実行する。
開発環境を一貫して設定し、チーム全体で同じ環境を共有することができる。

Dockerでの開発の特徴

  1. コンテナ化:
    • アプリケーションとその依存関係をコンテナ内にパッケージ化し、どこでも一貫して動作する環境を提供できる。
  2. 環境の一貫性:
    • コンテナを使用することで、開発者全員が同じ環境を使用できるため、環境の違いによる問題が減少する。
  3. ポータビリティ:
    • コンテナはどこでも動作するため、開発環境を簡単に移行できる。
  4. 分離:
    • 各プロジェクトが独立した環境で動作するため、依存関係の競合を避けることができる。

両者の違い

特徴ローカル開発Docker開発
環境設定開発者ごとに異なる一貫した環境
依存関係の管理手動で管理Dockerfileで管理
環境の移行手動で設定が必要コンテナを移行
パフォーマンス高い場合があるコンテナのオーバーヘッドがある場合がある
分離難しい場合がある簡単に分離可能

それぞれメリット、デメリットがある。。

TIP

開発者のニーズに最適な開発環境を選択することで、効率的に開発を進めることができる!

疑問点

今までローカル開発のみだったので、細かいところで理解できないところが多々でてきた。。

Q1:Docker環境で、フロントエンドからバックエンドへのリクエストが正しく送られているかどう確認するのか
ローカル開発では、ターミナル上で確認していた

  1. Dockerコンテナのログを確認:
    • docker logsコマンドを使用して、バックエンドコンテナのログを確認。
  2. docker-compose logsコマンドを使用:
    • docker-composeを使用している場合、docker-compose logsコマンドを使用して、すべてのサービスのログを確認。
  3. ブラウザの開発者ツールを使用:
    • ブラウザの開発者ツールを使用して、ネットワークタブでリクエストとレスポンスを確認。
  4. APIエンドポイントのテスト:
    • Postmanやcurlを使用して、APIエンドポイントに直接リクエストを送信し、レスポンスを確認。

Q2:Doc開発時のエラー確認方法は?特にバックエンド

  1. Dockerコンテナのログをリアルタイムで確認:
    • docker logs -fコマンドを使用して、特定のコンテナのログをリアルタイムで確認。
  2. docker-compose logs -fコマンドを使用:
    • docker-composeを使用している場合、docker-compose logs -fコマンドを使用して、すべてのサービスのログをリアルタイムで確認。
  3. ブラウザの開発者ツールを使用:
    • ブラウザの開発者ツールを使用して、ネットワークタブでリクエストとレスポンスを確認。
  4. APIエンドポイントのテスト:
    • Postmanやcurlを使用して、APIエンドポイントに直接リクエストを送信し、レスポンスを確認。

TIP

ローカル開発の際にターミナルでリアルタイムにリクエストの状況を確認していたように、上記にてDockerでも同様の方法で確認することが可能!

Q3:ローカルでの立ち上げ方は?Dockerとローカル開発での違い

  • ローカル環境での起動:
    • Pythonアプリケーションの場合、通常はpython app.pyのようなコマンドを使用。
  • Docker環境での起動:
    • docker-compose.ymlファイルを作成し、docker-compose upコマンドを使用してサービスを一括して起動。

まとめ

違いはdockerコンテナの中に入って操作するか否か。
後は基本的にローカル開発時とエラー確認方法等含め操作感は同じ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です