本番環境向けDockerfile設定ガイド:Laravelプロジェクトの依存関係管理とパフォーマンス最適化

パフォーマンスとセキュリティを考慮したデプロイ環境に最適な設定になります。

RUN yarn install --frozen-lockfile --production --no-progress --no-optional && \
    yarn cache clean
RUN composer install --no-interaction --optimize-autoloader --no-dev --prefer-dist --no-scripts && \
    composer dump-autoload --optimize --no-dev --classmap-authoritative

各コマンドの詳細

  • yarn install --frozen-lockfile --production --no-progress --no-optional:
  • --frozen-lockfile: 依存関係を正確に固定します。
  • --production: 本番環境用の依存関係のみインストールします。
  • --no-progress: インストール進行状況の表示を省略し、ビルドを少し軽量化します。
  • --no-optional: 任意の依存関係を除外し、本番に必要な最小限のセットをインストールします。
  • yarn cache clean: インストール後にキャッシュをクリアして、コンテナのサイズを削減します。
  • composer install --no-interaction --optimize-autoloader --no-dev --prefer-dist --no-scripts:
  • --no-interaction: 自動的にすべてのプロンプトに応答し、無人インストールに適しています。
  • --optimize-autoloader: クラスマップの事前生成でオートロードを最適化します。
  • --no-dev: 開発依存関係をインストールしません。
  • --prefer-dist: 圧縮ファイルからインストールし、ビルド時間を短縮します。
  • --no-scripts: スクリプトの実行を防止します。
  • composer dump-autoload --optimize --no-dev --classmap-authoritative:
  • 本番環境でのオートロード最適化を最大限に活用し、クラスマップだけを利用する構成になります。

まとめ

このコマンドセットでプロダクション環境の依存関係を最適にインストールし、不要なファイルやキャッシュを省くことができ、コンテナのサイズが小さくなり、パフォーマンスも向上します。

コメントを残す

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