目的


全体構成

backend/
├ docker-compose.yml
├ Dockerfile
└ src/            ← Laravel プロジェクト

1. Dockerfile の作成(Laravel 用)

backend/Dockerfile

# PHP 8.1 の公式イメージを使用
FROM php:8.1

# OS パッケージと PHP 拡張のインストール
# git        : composer install 用
# unzip     : zip 展開用
# libzip-dev: PHP zip 拡張のビルドに必要
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libzip-dev \
    && docker-php-ext-install \
    pdo_mysql \
    zip

# Composer を公式イメージからコピー
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

# Laravel のルートディレクトリ
WORKDIR /var/www

2. docker-compose.yml の作成

backend/docker-compose.yml

services:
  # Laravel アプリケーション
  app:
    build: .
    container_name: laravel_app
    ports:
      - "8000:8000"
    volumes:
      - ./src:/var/www
    depends_on:
      - db
    command: php artisan serve --host=0.0.0.0 --port=8000

  # MySQL データベース
  db:
    image: mysql:8.0
    container_name: laravel_db
    environment:
      MYSQL_DATABASE: app_db
      MYSQL_ROOT_PASSWORD: password
      TZ: Asia/Tokyo
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

3. Laravel プロジェクトの作成

cd backend
mkdir src
docker compose run --rm app composer create-project laravel/laravel .