今回はローカルのDockerにPHPのフレームワークである、Laravelをインストールする環境構築を行います。
まず、以下の公式サイトからDocker Desktopをインストールします。
https://docs.docker.com/desktop/install/mac-install/
(MacのM1・M2チップはApple Siliconを選択してください。)
dockerコマンドでコマンド一覧が表示されていればインストール完了です。
次に、Dockerのイメージを作成するのに必要な、Dockerfileをエディタ上で作成します。
以下、設定例です。
version: '3' services: app: ports: - "80:80" build: ./docker/app container_name: コンテナ名 volumes: - ./src:/var/www/html db: image: mysql:5.7 container_name: コンテナ名 environment: MYSQL_ROOT_PASSWORD: パスワード MYSQL_DATABASE: データベース名 MYSQL_USER: ユーザー名 MYSQL_PASSWORD: パスワード TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf ports: - "3306:3306"
ここで、サービスを複数作成する場合、コンテナ名は必ず別の名前にしてください。
Dockerファイルのある、作業ディレクトリに移動します。
以下のコマンドで、Docker イメージを作成します。
docker-compose build
設定したDockerファイルを元にビルドされます
Dockerコンテナを起動docker-compose up -d
(-dオプションで、バックグラウンドでコンテナを起動します。)
※MacのM1、M2チップの場合、以下のエラーが発生しました。
no matching manifest for linux/arm64/v8 in the manifest list entries
M1チップのプラットフォームはarm64であるのに対し、mysql5.7*のイメージのサポートプラットフォームがAMD64で一致していなかったためです。
platform: linux/x86_64
この行を追加します
db:
platform: linux/x86_64
image: mysql:5.7
container_name: コンテナ名
途中まで進み、コンテナが作成済みの場合、以下のコマンドでコンテナを削除します
docker rm コンテナ名
もしくは起動中の場合、以下のコマンドで強制削除します
docker rm -f コンテナ名
以下のコマンドで、作成済みのコンテナ一覧から削除されていることを確認し、再度起動します
docker ps -a
以下のコマンドでコンテナの中に入ります
docker-compose exec app /bin/bash
この「app」 は、Dockerファイルで設定したサービス名の「app:」ということで、コンテナ名のことではありません。
今回はLaravel9系をインストールするため、“9.*“でバージョン指定します
composer create-project --prefer-dist laravel/laravel プロジェクト名 “9.*”
Application key set successfully.
で成功です
以下のコマンドで、バージョンの確認をします
php artisan --version
srcディレクトリ以下にLaravelのプロジェクトがインストールされています
http://localhost
にアクセスすると、以下の通りLaravelのスタート画面が表示されます