環境構築演習

では、ここまで学んだ内容を生かして、LAMP環境の構築に挑戦してみましょう。

LAMP環境の要件

構築するLAMP環境の要件は以下の通りです。 以下の要件一覧とdocker-compose.ymlのイメージに従って、~/MyDocker/lamp_sampleディレクトリ以下に、各ディレクトリと設定ファイルを作成しましょう。

1. phpコンテナ

  • コンテナ名: php
  • ビルドディレクトリ: lamp_sampleディレクトリ直下のphpディレクトリ
  • ベースイメージ: php:7.4-apache
  • iniファイルでマルチバイト対応および日本時間への対応を行う
  • インストールするモジュール: pdo_mysql mysqli mbstring exif
  • ポートフォワーディング: ローカルの8080番をコンテナの80番にフォワーディング
  • ボリューム: lamp_sampleディレクトリ直下のwwwディレクトリをコンテナの/var/wwwにマウント
  • 依存サービス: mysqlサービスに依存

2. mysqlコンテナ

  • コンテナ名: mysql
  • ベースイメージ: mysql:5.7
  • 起動時に実行するコマンド: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --innodb-use-native-aio=0
  • ボリューム: lamp_sampleディレクトリ直下のdbディレクトリをコンテナの/var/lib/mysqlにマウントし、DBの内容を永続化
  • 環境変数
    • MYSQL_ROOT_PASSWORD: 任意のmysqlルートパスワード
    • MYSQL_DATABASE: 任意のDB名
    • MYSQL_USER: 任意のDB一般ユーザー名
    • MYSQL_PASSWORD: 任意のDB一般ユーザーパスワード
    • TZ: Asia/Tokyo(タイムゾーン)

3. phpmyadminコンテナ

  • コンテナ名: phpmyadmin
  • ベースイメージ: phpmyadmin/phpmyadmin
  • ポートフォワーディング: ローカルの8888番ポートをphpmyadminコンテナの80番ポートに転送
  • 依存サービス: mysqlサービスに依存
  • 環境変数
    • PMA_HOST: mysql(上記で作成したDBサーバのサービス名)

docker-compose.ymlのイメージ

version: '3' # 設定ファイルの文法のバージョン3を利用する。

services:

  # 1. phpモジュールを搭載したapacheをインストールするコンテナ。
  php:
    # phpディレクトリのDockerfileに基づいてコンテナ作成

    # ホストのhtmlディレクトリをphpコンテナのドキュメントルートと同期。

    # ホストの8080番ポートをコンテナの80番ポートにフォワード(転送)

    # このコンテナはmysqlコンテナに依存する


  # 2. mysqlをインストールするコンテナ
  mysql:
    # mysql5.7の公式イメージをそのまま利用。

    # mysqlの起動時に文字コードを指定
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --innodb-use-native-aio=0

    # ホストOSのdbフォルダ内にmysqlコンテナのDBの内容を保存

    # mysqlのルートパスワードを設定(環境変数名MYSQL_ROOT_PASSWORD)

    # デフォルトで作成するデータベース名を設定(環境変数名MYSQL_DATABASE)

    # デフォルトで作成するDBユーザー名を設定(環境変数名MYSQL_USER)

    # デフォルトで作成するDBユーザーのパスワードを設定(環境変数名MYSQL_PASSWORD)

    # タイムゾーンをAsia/Tokyoに設定(環境変数名MYSQL_PASSWORD)

  # 3. phpmyadminをインストールするコンテナ
  phpmyadmin:
    # phpmyadmin/phpmyadminのコンテナイメージをそのまま利用

    # 接続先DBホストをmysqlコンテナに接続(環境変数名PMA_HOST)

    # mysqlコンテナに依存する

    # ホストの8888番ポートをphpmyadminコンテナの80番ポートに転送

results matching ""

    No results matching ""