[Laravel 備忘録] Laravel Sailでプロジェクト作成してDockerで動かすまで

  • このエントリーをはてなブックマークに追加

久々にLaravelで開発することになったので、認識の確認がてらメモ

便利と噂のLaravel Sailでプロジェクト作成して、管理画面をLaravel-Admin、ユーザーログイン周りをLarabel Breezeを使って実装するまでのの手順をまとめる

ちなみにRedisとかよくわからんし、本番環境で使えないこともある(?)と思うし今回は使いません

開発環境はmac + Docker

Laravelインストーラーを使ってlaravel8のプロジェクト作る

laravel/installerをv4.0以上に更新

composer global require laravel/installer

これでOK

laravel -V

↑でバージョンが4.0以上なのをチェック

Laravel Installer 4.2.9

エラー出てたら –with-all-dependencies オプションなどで解決すること

composer global require laravel/installer  --with-all-dependencies

Laravel Sailのインストール

composer require laravel/sail --dev

こんだけ

Sailでプロジェクト作成

既存プロジェクトにSailを組み込むのもできるみたいだけど今回は公式で言ってるcurlを使って新規にプロジェクト作成する。

今回はプロジェクト名kirin-app

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

結構時間がかかるのでコーヒーを飲みながら待つ

毎回これに5分くらいかかる。最終的にパスワードを求められるのでmacのパスワードを入力。

ディレクトリに入って /vendor/bin/sail up すればコンテナが立ち上がるけどその前に設定を最低限見直しておく。

(必要に応じて)docker-compose.ymlの編集

PHPを7に

標準でPHP8になってるけど、現状PHP8を使う予定がないので7にしておく

# context: ./vendor/laravel/sail/runtimes/8.1
↓
# PHP 7.4
context: ./vendor/laravel/sail/runtimes/7.4

イメージ名もPHPのバージョンにあわせ変更します。

# image: sail-8.1/app

# 変更後
image: sail-7.4/app

MySQLを5.6に

同様にMySQLのバージョン変更はこう

# image: 'mysql/mysql-server:8.0'
# ↓変更後
image: 'mysql/mysql-server:5.6'

phpMyAdminを入れておく

あれば便利インデントに気をつけて以下をコピペ

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            MYSQL_USERNAME: '${DB_USERNAME}'
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            PMA_HOST: mysql
        networks:
            - sail

http://localhost:8080 にアクセスすればphpMyAdminが表示される。
ログイン情報は.envファイルを参照する(基本的にプロジェクト名がユーザーIDでパスワードはpassword)

Sailを起動

設定できたらSailをupしよう

cd kirin-app
./vendor/bin/sail up

初回upはイメージファイルを作るとこからなので、これまた時間かかる。コーヒーを飲みながら待とう

ymlファイルいじったせいでエラーが出てる場合は、composer updateかけてまたsail upすると大体解決すると思う

完了したら http://localhost/ にアクセスすればLaravelの初期画面が出るはず。

トラブルが無ければ、コマンド2発でここまで行く。

途中、2回待つ時間があるので暇つぶしの用意をして望むのがいいだろう。

sailコマンドをaliase登録

sailで作ったプロジェクトは./vendor/bin/sailコマンドをよく使うことになる、パスが長いのでエイリアス登録しておく(相対パスのエイリアスになるから複数プロジェクトあってもOK)

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

~.bash_profileに上記を追加して以下を実行

source ~/.bash_profile 

これでsailと打てばコンテナ上でコマンドが実行されるようになった

migrateを実行して準備完了

sailのパスを通したら以下のコマンドを打てば初回migrateが完了する

sail artisan migrate

すごい便利

コンテナを自作する場合

Sail便利だけど環境が特殊すぎる時コンテナは1から作ったほうが楽かもそんな場合は過去記事を参照

まとめ

なんか長くなったけど、インストーラーやパスが通っている状態なら以下のコマンドを打つだけで最後まで行く

curl -s "https://laravel.build/kirin-app" | bash
cd kirin-app
sail up
sail artisan migrate

途中待つ時間必要だけど、長くても30分位じゃないかな

ほとんどオートで完了するので、頻繁に開発環境を整える人とかはLaravelを検討したほうがいいと思う。

次はのプロジェクトにLaravel Breezeで認証系つけていく

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*