Dockerでlaravel9の環境構築の仕方

Dockerを使用してLaravel 9の開発環境を構築するためには、次の手順を実行する必要があります。
1. Dockerをインストールする:Dockerをインストールし、コマンドラインからアクセスできるようにしてください。
2. Laravel 9プロジェクトを作成する:Laravel 9の新しいプロジェクトを作成します。
docker run --rm -v $(pwd):/app composer create-project --prefer-dist laravel/laravel:^9.0 my-project3. Dockerfileを作成する:プロジェクトのルートディレクトリにDockerfileを作成し、以下の内容を追加します。
FROM php:8.0-apache
# Install dependencies
RUN apt-get update && \
    apt-get install -y \
        libonig-dev \
        libzip-dev \
        unzip
# Install extensions
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl bcmath
# Enable Apache modules
RUN a2enmod rewrite
# Copy project files to container
COPY . /var/www/html/
# Set permissions
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
# Expose port
EXPOSE 80
4. docker-compose.ymlを作成する:プロジェクトのルートディレクトリにdocker-compose.ymlを作成し、以下の内容を追加します。
version: "3.9"
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: my-project
    container_name: my-project
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
    environment:
      APP_NAME: "My Project"
      APP_ENV: "local"
      APP_KEY: ""
      APP_DEBUG: "true"
      APP_URL: "http://localhost:8080"
      DB_CONNECTION: "mysql"
      DB_HOST: "db"
      DB_PORT: "3306"
      DB_DATABASE: "my_database"
      DB_USERNAME: "my_user"
      DB_PASSWORD: "my_password"
    depends_on:
      - db
  db:
    image: mysql:8.0
    container_name: my-project-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_DATABASE: "my_database"
      MYSQL_USER: "my_user"
      MYSQL_PASSWORD: "my_password"
    ports:
      - "3306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql
5. Dockerコンテナを起動する:以下のコマンドを実行して、Dockerコンテナを起動します。
docker-compose up -dこれでLaravel 9のDocker開発環境が構築され、ブラウザで http://localhost:8080 にアクセスすると、Laravelのデフォルトのウェルカムページが表示されます。
