🕖

Laravel9+Docker(Windows、Mac)の環境構築手順

2022/12/19に公開

Laravel9+Dockerの構築手順を記載します。

前提事項

PHPとComposer、DocerDesktopをインストールしていることが前提です。
Macの場合はHomeBrewでインストールすることをお勧めします。

構築について

今回はLaravel8から利用可能になったLaravel Sailを使ってLaravelをインストールします。
これを使うとインストールして立ち上げの2つのコマンドのみでLaravelの環境開発が整います。

※今回作成するアプリケーション名はlaravel9-appとしておりますので適宜変更ください。

Laravelインストール→起動(Windows、Mac共通)

インストール

curl -s "https://laravel.build/laravel9-app" | bash

起動

cd laravel9-app

./vendor/bin/sail up

※毎回./vendor/bin/sail upを叩くのは面倒なため、パスを通すことをお勧めします。
パスを通せば、./vendor/bin/を省略できるので下記のみでOK

sail up

Windowsの場合、環境変数から設定を行なってください。

zshを使っている場合(Mac)

$ vim ~/.zshrc

次のようにsailへのエイリアスを追記します。

alias sail="./vendor/bin/sail"

.zshrcを読み込めばパスが通ります。

$ source ~/.zshrc

起動確認

ブラウザでlocalホストにアクセスします。
http://localhost

↓こんな感じになればOK

開発用のメールサーバーMailHogとオープンソースの検索エンジンMailiSearchも同時にインストールされております。

MailHog

http://localhost:8025/

MailiSearch

http://localhost:7700/

他サービスのインストール

Sailを利用すると、下記のサービスを簡単にインストールすることができます。

下記のようにwithパラメータをつけることでインストールが可能です。
例)mysqlとredisをインストールする場合。

curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
  1. mysql
  2. redis
  3. meilisearch
  4. selenium
  5. mailhog
  6. pgsql
  7. mariadb
  8. memcached
  9. minio

※尚、withパラメータを指定しない場合デフォルトで下記がインストールされます。

  1. mysql
  2. redis
  3. meilisearch
  4. selenium
  5. mailhog

日本語化対応

config/app.phpの3箇所を以下のように変更してください。

①'timezone' => 'Asia/Tokyo'
②'locale' => 'ja'
③'faker_locale' => 'ja_JP'

下記コマンドを実行してください。

php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
php -f install-ja-lang.php
php -r "unlink('install-ja-lang.php');"

resources/lang/ディレクトリが作成されます。
resources/lang/下に下記をコピペしたja.jsonというファイルを作り配置する。
→日本語化しきれていない部分を補完

{
    "Login":"ログイン",
    "E-Mail Address":"メールアドレス",
    "Password":"パスワード",
    "Remember Me":"ログイン状態を保存する",
    "Forgot Your Password?":"パスワードをお忘れですか?",
    "Register":"登録",
    "Name":"お名前",
    "Confirm Password":"パスワード(確認用)",
    "Reset Password":"パスワードリセット",
    "Send Password Reset Link":"パスワードリセットリンク送信",
    "Logout":"ログアウト",

    "Verify Your Email Address":"メールアドレスを確認してください。",
    "A fresh verification link has been sent to your email address.":"新しいリンクを登録済みのメールアドレス宛に送信しました。",
    "Before proceeding, please check your email for a verification link.":"メールに記載されているリンクをクリックして、登録手続きを完了してください。",
    "If you did not receive the email":"メールが届いていない場合、",
    "click here to request another":"こちらをクリックして再送信してください。",

    "Please click the link below to verify your email address.":"メールアドレスを確認するために下のリンクをクリックしてください。",
    "Verify Email Address":"メールアドレス確認",
    "If you did not create an account, no further action is required.":"心当たりがない場合は、本メッセージは破棄してください。",

    "Click button below and reset password.":"下のボタンをクリックしてパスワードを再設定してください。",
    "Reset password":"パスワードリセット",
    "If you did not request a password reset, no further action is required.":"心当たりがない場合は、本メッセージは破棄してください。"
}

Sailの各種コマンドについて

Docer内のコンテナ一覧を表示する

$ sail ps

PHPのバージョン確認
→PHPコマンドが使えるということ

$ sail php -v

Composerのバージョン確認
→Composerコマンドが使えるということ

$ sail composer -V

Dockerコンテナに入る

$ sail shell

Dockerコンテナ再起動

$ sail restart

Dockerコンテナに入る

$ sail mysql

artisanコマンドを実行

$ sail artisan route:list 

Discussion