Docker は、アプリケーションとその依存環境をまとめてパッケージ化し、さまざまな環境での迅速かつ安定したデプロイを実現できる軽量のコンテナ化プラットフォームです。この記事では、Docker コンテナ化と Yii フレームワーク アプリケーションのデプロイメントを使用して、開発プロセスと起動プロセスをより効率的かつ一貫性のあるものにする方法について説明します。
まず、プロジェクトのルート ディレクトリにDockerfileという名前の新しいファイルを作成し、次の内容を書き込みます。
FROM php:7.4-fpm
WORKDIR /var/www
COPY composer.json .
RUN composer install
COPY . .
EXPOSE 80
CMD ["php", "-S", "0.0.0.0:80"]
このファイルは、PHP 環境の基本イメージを定義し、プロジェクトの依存関係をインストールし、コンテナーの作業ディレクトリと起動コマンドを設定します。
ターミナルでプロジェクトのルート ディレクトリを入力し、次のコマンドを実行してイメージをビルドします。
<span class="fun">docker build -t yii-app 。</span>
このコマンドは、Dockerfile の構成に基づいてyii-appという名前のイメージを生成します。
イメージが構築されたら、次のコマンドを使用してコンテナーを実行できます。
<span class="fun">docker run -p 8080:80 yii-app</span>
実行後、 http://localhost:8080にアクセスして、Yii アプリケーションが正常に起動するかどうかを確認できます。
アプリケーションをローカルでテストすると、リモート サーバーにデプロイできます。まず、ビルドされたイメージを Docker Hub またはプライベート イメージ ウェアハウスにプッシュし、サーバー上で次の操作を実行します。
画像をプルします:
<span class="fun">docker pull <レジストリ>/<名前空間>/yii-app</span>
コンテナを実行します。
<span class="fun">docker run -p 80:80 <レジストリ>/<名前空間>/yii-app</span>
意思
Yii プロジェクトでデータベース、キャッシュ、その他のサービスが必要な場合は、Docker Compose を使用して複数のコンテナを均一に管理できます。プロジェクトのルート ディレクトリにdocker-compose.ymlファイルを作成します。例は次のとおりです。
version: '3'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./:/var/www
次に、ターミナルで次のコマンドを実行してアプリケーションを起動します。
<span class="fun">docker-compose up -d</span>
Docker Compose は自動的にイメージを構築し、必要なコンテナを起動して、Yii アプリケーションと依存サービスを一緒に実行できるようにします。
Docker を介した Yii フレームワーク アプリケーションのコンテナ化されたデプロイメントは、環境設定を簡素化するだけでなく、開発、テスト、実稼働環境の一貫性を維持します。単一コンテナのデプロイメントであっても、複数コンテナのオーケストレーションであっても、Docker は Yii プロジェクトの継続的な統合と配信のための効率的なソリューションを提供します。