はじめに
こんにちは、Webエンジニアの岩田史門(@SI_Monxy)です!
今回はDockerを用いたLaravelの環境構築について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!
概要
Dockerを使用することで、ローカル開発環境を迅速かつ一貫してセットアップできます。このガイドでは、Laravelアプリケーションの開発環境をDockerで構築する手順を紹介します。
前提条件
- Dockerがインストールされていること
- Docker Composeがインストールされていること
手順概要
- Laravelプロジェクトの作成
- Dockerファイルの作成
- Docker Composeファイルの作成
- 環境設定ファイルの編集
- Dockerコンテナのビルドと起動
1. Laravelプロジェクトの作成
まず、Laravelプロジェクトを作成します。以下のコマンドを実行して、新しいLaravelプロジェクトを作成します。
composer create-project --prefer-dist laravel/laravel my-laravel-app
cd my-laravel-app
2. Dockerファイルの作成
次に、プロジェクトディレクトリのルートに Dockerfile を作成し、以下の内容を追加します。
# ベースイメージを指定
FROM php:8.1-fpm
# 作業ディレクトリを設定
WORKDIR /var/www
# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y \
build-essential \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
locales \
zip \
jpegoptim optipng pngquant gifsicle \
vim \
unzip \
git \
curl
# Docker PHP Extension Installerを使用して拡張機能をインストール
RUN docker-php-ext-install pdo pdo_mysql
# Composerをインストール
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Laravelアプリケーションのファイルをコピー
COPY . /var/www
# 権限を設定
RUN chown -R www-data:www-data /var/www
# エントリーポイント
CMD ["php-fpm"]
3. Docker Composeファイルの作成
次に、 docker-compose.yml ファイルをプロジェクトディレクトリのルートに作成し、以下の内容を追加します。
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
image: laravel-app
container_name: laravel-app
restart: unless-stopped
working_dir: /var/www
volumes:
- .:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- laravel
webserver:
image: nginx:alpine
container_name: webserver
restart: unless-stopped
ports:
- "8000:80"
volumes:
- .:/var/www
- ./docker/nginx/conf.d:/etc/nginx/conf.d
networks:
- laravel
depends_on:
- app
db:
image: mysql:5.7
container_name: db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
networks:
- laravel
networks:
laravel:
driver: bridge
volumes:
dbdata:
driver: local
4. 環境設定ファイルの編集
.env ファイルを編集し、データベース接続情報を設定します。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret
5. Dockerコンテナのビルドと起動
以下のコマンドを実行して、Dockerコンテナをビルドし、起動します。
docker-compose up --build
ブラウザで http://localhost:8000 にアクセスし、Laravelのウェルカムページが表示されることを確認します。
まとめ
このガイドでは、Dockerを使用してLaravel開発環境を構築する方法を紹介しました。Dockerを活用することで、簡単に開発環境をセットアップし、プロジェクト間での環境の一貫性を保つことができます。