目次
はじめに
Dockerは、開発環境の標準化と移植性を提供する強力なツールです。特に、異なる環境での開発作業をスムーズに進めるために、多くの開発者がDockerを導入しています。本記事では、Dockerを使用してLaravelアプリケーションとMySQLデータベースを設定する実践的な手順を紹介します。
必要なツールと準備
-
Dockerのインストール
まず、公式のDockerのインストールガイドに従って、Dockerをインストールします。 -
Docker Composeのインストール
LaravelとMySQLを連携させるために、docker-compose
を使います。docker-compose
は、複数のコンテナを定義して管理するためのツールです。
プロジェクトのセットアップ
-
Laravelプロジェクトの作成
Laravelのプロジェクトを新規作成します。ターミナルで以下のコマンドを実行してください。
composer create-project --prefer-dist laravel/laravel laravel-docker
-
プロジェクトディレクトリに移動
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を使うことで、開発環境の標準化や移植性が向上し、チーム開発が円滑に進むようになります。これで、開発環境のセットアップが簡単にできるようになり、開発効率を大幅に向上させることができます。