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-project

3. 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のデフォルトのウェルカムページが表示されます。

シェアする

上にスクロール