記事について
Laravel9のlaravel-breezeを使った認証のメモ。ベース環境は過去に作成した記事のものを使用。前提環境のlaravel9環境構築は「Docker+Nginx+Laravel9+php-8.1+php-fpmの環境作成」、mysql8の環境構築は「mysql8単体のDocker環境を作成する」を参照。
Dockerfileの修正
Dockerfileの修正
nodejs周りをのインストールを入れた修正版。APP_BASE/docker/app/Dockerfileを修正する。nodejsをそのまま入れるとビルドに失敗したのでバージョン指定でインストールするようにしている。入るバージョンは18.x。
FROM php:8.1.8-fpm-buster
SHELL ["/bin/bash", "-oeux", "pipefail", "-c"]
# timezone environment
ENV TZ=Asia/Tokyo \
# locale
LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \
LC_ALL=en_US.UTF-8 \
# composer environment
COMPOSER_ALLOW_SUPERUSER=1 \
COMPOSER_HOME=/composer \
COMPOSER_NO_INTERACTION=1
COPY --from=composer:2.1 /usr/bin/composer /usr/bin/composer
RUN apt-get update && \
apt-get -y install git wget vim zip curl unzip libicu-dev libonig-dev libzip-dev locales libpq-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev libjpeg-dev libcurl4-gnutls-dev gnupg2 procps grep curl && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
locale-gen en_US.UTF-8 && \
localedef -f UTF-8 -i en_US en_US.UTF-8 && \
mkdir /var/run/php-fpm && \
mkdir /var/log/php && \
docker-php-ext-install intl pdo_mysql zip bcmath mbstring && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install -j$(nproc) gd && \
docker-php-ext-install curl && \
composer config -g process-timeout 3600 && \
composer config -g repos.packagist composer https://repo.packagist.org
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash
RUN apt-get install -y nodejs
COPY ./php-fpm.d/zz-www.conf /usr/local/etc/php-fpm.d/zz-www.conf
COPY ./php.ini /usr/local/etc/php/php.ini
WORKDIR /var/www
DB作成
mysqlのコンテナを起動後、mysqlにログインし、今回のアプリケーションで使うDBを作成する。この例のDB名称は「laravel」。
$ mysql -u root -p -h 127.0.0.1
Enter password:
...
mysql> CREATE DATABASE laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.02 sec)
laravel-breezeのインストール
まずdockerコンテナにログインする。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
827c2d2cebde laravel9-app-nginx "/docker-entrypoint.…" 47 minutes ago Up 47 minutes 80/tcp laravel9-app-nginx
b53815b1f0cd laravel9-app-app "docker-php-entrypoi…" 47 minutes ago Up 47 minutes 9000/tcp laravel9-app
8366bc2c2f34 mysql:8.0.31 "docker-entrypoint.s…" 11 days ago Up 45 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8-general
$ docker exec -it b53815b1f0cd /bin/bash
nodejsとnpmのこの時点でのバージョンは以下。
(コンテナ内部で)
# node -v
v18.12.1
# npm -v
8.19.2
breezeをインストール、ビルドする。
(コンテナ内部で)
# composer require laravel/breeze --dev
# php artisan breeze:install
# npm run build
環境設定ファイル(.env)の修正
.envを作成または修正する。今回修正するのはDB接続部分のみ。
(コンテナ内部で)
# vim /var/www/.env
...
DB_CONNECTION=mysql
DB_HOST=mysql8-general
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=password
...
必要テーブルの作成(migration)
breezeで必要になるテーブルをmigrationで作成する。
# cd /var/www
# php artisan migrate
ユーザ作成・ログイン
http://laravel9-app.localhost/register へアクセスし、アカウントを登録する。

次に http://laravel9-app.localhost/login からログインしてみる。

ログイン後ダッシュボートが見れれば完了。

余談
やっとベースができたので、マルチログインなど認証いじったりしていく予定。
コメント