Laravel Sailで開発環境を構築する

Laravel Sailで開発環境を構築する

Laravel Sailを使用して、Laravelの開発環境を構築するまでの手順を記述してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • docker 20.10.2

LaravelSail導入

dockerがインストールされている環境が前提となりますが、以下のコマンドと、

# laravel-testという名前のプロジェクトを作成
curl -s https://laravel.build/laravel-test | bash

以下のコマンドを実行するだけで「Laravel」の開発環境を構築することが可能です。

cd laravel-test && ./vendor/bin/sail up

ブラウザから http://プライベートIP or サーバーアドレスにアクセスするとLaravelの開発環境が構築されいることが確認できます。

ブラウザから http://プライベートIP or サーバーアドレス:8085にアクセスすると、メール確認用のMailHogも構築されています。

MYSQLアクセス

mysqlにも「sails」コマンドを使用すればアクセスすることが可能です。

./vendor/bin/sail exec mysql mysql -u root

<出力結果>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 8.0.23 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

その他コマンド

artisanやcompose、nodeもsailから使用することが可能です。

./vendor/bin/sail artisan -V

<出力結果>
Laravel Framework 8.27.0

./vendor/bin/sail composer -V

<出力結果>
Composer version 2.0.9 2021-01-27 16:09:27

./vendor/bin/sail node -v

<出力結果>
v15.8.0

./vendor/bin/sail npm -v

<出力結果>
7.5.1

./vendor/bin/sail php -v

<出力結果>
PHP 8.0.2 (cli) (built: Feb  7 2021 12:22:16) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.2, Copyright (c), by Zend Technologies

unitテストも以下のコマンドで可能です。

./vendor/bin/sail test

<出力結果>

   PASS  Tests\Unit\ExampleTest
  ✓ basic test

   PASS  Tests\Feature\ExampleTest
  ✓ basic test

  Tests:  2 passed
  Time:   0.23s

コンテナにアクセス

コンテナにアクセスする場合は、以下で可能です。

./vendor/bin/sail shell

<出力結果>
sail@09226d378cf5:/var/www/html$ ls 
README.md  artisan    composer.json  config    docker-compose.yml  phpunit.xml  resources  server.php  supervisord.log  tests   webpack.mix.js
app        bootstrap  composer.lock  database  package.json        public       routes     storage     supervisord.pid  vendor

エイリアス設定

「./vendor/bin/sail」と毎回入力するのは面倒なので、エイリアスを設定しておきます。

vi ~/.zshrc

<編集>
alias sail="./vendor/bin/sail

反映させます。

source ~/.zshrc

sailコマンド一覧

起動

sail up

バックグラウンドで起動

sail up -d

停止

sail stop

ステータス

sail ps

<出力結果>
           Name                          Command                  State                           Ports                     
----------------------------------------------------------------------------------------------------------------------------
laravel-test_laravel.test_1   start-container                  Up             0.0.0.0:80->80/tcp, 8000/tcp                  
laravel-test_mailhog_1        MailHog                          Up             0.0.0.0:1025->1025/tcp, 0.0.0.0:8025->8025/tcp
laravel-test_mysql_1          docker-entrypoint.sh mysqld      Up (healthy)   0.0.0.0:3306->3306/tcp, 33060/tcp             
laravel-test_redis_1          docker-entrypoint.sh redis ...   Up (healthy)   0.0.0.0:6379->6379/tcp