目次

    はじめに

    Dockerは、開発環境の標準化と移植性を提供する強力なツールです。特に、異なる環境での開発作業をスムーズに進めるために、多くの開発者がDockerを導入しています。本記事では、Dockerを使用してLaravelアプリケーションとMySQLデータベースを設定する実践的な手順を紹介します。


    必要なツールと準備

    1. Dockerのインストール
      まず、公式のDockerのインストールガイドに従って、Dockerをインストールします。

    2. Docker Composeのインストール
      LaravelとMySQLを連携させるために、docker-composeを使います。docker-composeは、複数のコンテナを定義して管理するためのツールです。


    プロジェクトのセットアップ

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

      Laravelのプロジェクトを新規作成します。ターミナルで以下のコマンドを実行してください。

      composer create-project --prefer-dist laravel/laravel laravel-docker
      
    2. プロジェクトディレクトリに移動

      cd laravel-docker
      

    Docker Composeファイルの作成

    docker-compose.ymlファイルをプロジェクトのルートディレクトリに作成し、以下の内容を追加します。

    version: '3.8'
    
    services:
      app:
        image: php:8.0-fpm
        container_name: laravel-app
        working_dir: /var/www
        volumes:
          - .:/var/www
        networks:
          - laravel-network
        depends_on:
          - mysql
    
      mysql:
        image: mysql:5.7
        container_name: mysql-db
        environment:
          MYSQL_ROOT_PASSWORD: rootpassword
          MYSQL_DATABASE: laravel
          MYSQL_USER: laraveluser
          MYSQL_PASSWORD: laravelpassword
        volumes:
          - mysql-data:/var/lib/mysql
        networks:
          - laravel-network
    
    networks:
      laravel-network:
        driver: bridge
    
    volumes:
      mysql-data:
        driver: local
    

    この構成では、appサービス(Laravelアプリケーション)とmysqlサービス(MySQLデータベース)を定義しています。


    Dockerコンテナの起動

    次に、docker-composeを使用して、必要なサービス(コンテナ)を立ち上げます。

    docker-compose up -d
    

    これで、LaravelとMySQLのコンテナがバックグラウンドで起動します。


    LaravelとMySQLの接続設定

    LaravelがMySQLデータベースと接続するための設定を行います。.envファイルを開いて、以下の内容を設定します。

    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=laravel
    DB_USERNAME=laraveluser
    DB_PASSWORD=laravelpassword
    

    DB_HOSTは、docker-compose.ymlファイルで定義したMySQLサービスの名前(mysql)に合わせる必要があります。


    Laravelのマイグレーション実行

    次に、データベースのマイグレーションを実行して、Laravelがデータベースにテーブルを作成できるようにします。

    docker-compose exec app php artisan migrate
    

    これで、MySQLデータベースにテーブルが作成され、Laravelアプリケーションが正しくデータベースに接続できるようになります。


    コンテナの停止と再起動

    開発が終了した後、コンテナを停止するには次のコマンドを実行します。

    docker-compose down
    

    再度コンテナを起動する場合は、以下のコマンドを実行します。

    docker-compose up -d
    

    まとめ

    この記事では、Dockerを使用してLaravelとMySQLの開発環境を構築する方法を紹介しました。Dockerを使うことで、開発環境の標準化や移植性が向上し、チーム開発が円滑に進むようになります。これで、開発環境のセットアップが簡単にできるようになり、開発効率を大幅に向上させることができます。

    PREV
    2025.04.05
    WEBディレクターが知っておくべきAWSの基礎知識【初心者向け第2回】
    NEXT
    2025.04.08
    Slack・Notion・Googleドライブで「これ知らないと地味に損する」便利ワザ