2
3

はじめに

こんにちは、Webエンジニアの岩田史門(@SI_Monxy)です!
今回はDockerを用いたLaravelの環境構築について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

概要

Dockerを使用することで、ローカル開発環境を迅速かつ一貫してセットアップできます。このガイドでは、Laravelアプリケーションの開発環境をDockerで構築する手順を紹介します。

前提条件

  • Dockerがインストールされていること
  • Docker Composeがインストールされていること

手順概要

  1. Laravelプロジェクトの作成
  2. Dockerファイルの作成
  3. Docker Composeファイルの作成
  4. 環境設定ファイルの編集
  5. 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を活用することで、簡単に開発環境をセットアップし、プロジェクト間での環境の一貫性を保つことができます。

参考

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3