docker-composeでLaravel9 + PHP8.0の環境を構築する

カテゴリ: Laravel | タグ: , , , , ,

docker-composeをつかってLaravel9とPHP8.0の実行環境を構築する手順を説明します。
コンテナはnginxとphp-fpmを使う方法もありますが、今回は本番環境へデプロイを容易に行えることを考慮してapacheをwebサーバにします。

Laravelをインストール

まずはLaravel9をインストールします。Laravel sailを使う方法もありますが、今回はdocker-composeを手作業で作りたいので、laravelコマンドを使います。

mkdir example-app && cd example-app
laravel new backend

ホストOSから直接起動できること確認

ホストOSにphp8.xがインストールされていれば、Dockerを使わずに動作するか、下記のコマンドで確認します。

cd backend
php artisan serve

# http://localhost:8000/にアクセスできることを確認

cd ..

ファイルの構造を作る

docker-composeで環境を作るためにまずは空のファイルで構造を作ります。

touch docker-compose.yaml

mkdir -p docker/php/apache
touch docker/php/Dockerfile
touch docker/php/php.ini
touch docker/php/apache/000-default.conf

ここでディレクトリ構成は以下の形になります。

example-app
├── backend
│   └── ...
├── docker
│   └── php
│       ├── Dockerfile
│       ├── apache
│       │   └── 000-default.conf
│       └── php.ini
└── docker-compose.yaml

ファイルを用意する

下記の内容でファイルの中身を用意します。

docker-compose.yaml

version: '3'

services:
  web:
    container_name: web
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    ports:
      - 80:80
    volumes:
      - ./backend:/var/www/html

docker/php/Dockerfile

FROM php:8.0-apache-bullseye

RUN apt-get update \
 && apt-get install -y zlib1g-dev libzip-dev unzip\
 && docker-php-ext-install zip

ENV COMPOSER_ALLOW_SUPERUSER 1
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

ADD docker/php/php.ini /usr/local/etc/php/
ADD docker/php/apache/000-default.conf /etc/apache2/sites-enabled/

WORKDIR /var/www/html

COPY ../../../backend /var/www/html

RUN chown www-data storage/ -R \
 && composer install

docker/php/php.ini

[Date]
date.timezone = "Asia/Tokyo"

[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

docker/php/apache/000-default.conf

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

docker-composeで起動する

ファイルを用意したら、下記のコマンドでdockerを起動します。

docker-compose build
docker-comopse up -d

起動後に、ブラウザからhttp://localhost/にアクセスして表示されればOKです。

後片付け

動作確認したら、下記のコマンドで作ったdockerの環境を削除できます。

docker-compose down --rmi all --volumes --remove-orphans

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。