ローカルのDocker環境にLaravelをインストールする

今回はローカルの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のスタート画面が表示されます