【Laravel】 Larael Sailを使って環境構築

対象 Laravelの環境構築で詰まる人 初心者

書いている人  プログラミング歴1年半

前提 DockerがPCに入っている

環境 PC:M1Mac OS:macOS Monterey

参考
日本語版ドキュメント:https://readouble.com/laravel/8.x/ja/sail.html
海外版ドキュメントhttps://laravel.com/docs/8.x

いつのまにやらdockerのmysqlがM1チップに対応してた。今までLaravel Sailを使おうとしたが、mysqlのために使うことができなかった。おそらくMacのOSが新しくなったからなのか。

というわけで、Laravel公式が勧めているLaravel Sailを使ってローカルに環境構築していく。思った以上に早く環境が作れて、今までLaradockなどで環境構築に苦戦してたのが嘘みたい。

なお、Dockerを使うがDockerの知識はあまり必要ない。自分もほとんど知らないが環境作った後にでも、軽く概念だけ理解しておくといいかも。

一つsailで環境を作った後の注意点として、今までphp artisanと打っていたところはsail artisanとsailをartisanの前につける必要がある。

目次

Dockerのインストール

Laravel Sailを使う前提としてDockerが入っていないと何もできないので、入っていない人はインストールしよう。

https://matsuand.github.io/docs.docker.jp.onthefly/desktop/mac/install/

リンクから対応しているものをインストールしよう。

M1の場合はAppleチップを選択

インストールしたら起動しておく。ツールバーから起動できる。

PC上にあるツールバーのクジラをクリック
runningになっていればOK

Laravelアプリのダウンロード

適当なフォルダを用意してターミナルから以下のコマンドを打つ。このコマンドを打つとexample-appという名前でLaravelアプリを作成してくれる。example-appの部分は好きな名前で大丈夫だ。

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

ここでは、"https://laravel.build/example-app"ファイルへアクセスしてそれを実行している。この中身はアクセスしてみると以下のように書かれている。

docker info > /dev/null 2>&1

# Ensure that Docker is running...
if [ $? -ne 0 ]; then
    echo "Docker is not running."

    exit 1
fi

docker run --rm \
    -v "$(pwd)":/opt \
    -w /opt \
    laravelsail/php81-composer:latest \
    bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium "

cd example-app

CYAN='\033[0;36m'
LIGHT_CYAN='\033[1;36m'
WHITE='\033[1;37m'
NC='\033[0m'

echo ""

if sudo -n true 2>/dev/null; then
    sudo chown -R $USER: .
    echo -e "${WHITE}Get started with:${NC} cd example-app && ./vendor/bin/sail up"
else
    echo -e "${WHITE}Please provide your password so we can make some final adjustments to your application's permissions.${NC}"
    echo ""
    sudo chown -R $USER: .
    echo ""
    echo -e "${WHITE}Thank you! We hope you build something incredible. Dive in with:${NC} cd example-app && ./vendor/bin/sail up"
fi

はっきり言って何書かれているかはさっぱりわからないが以下の部分でLaravelを落としてきているらしい。

docker run --rm \
    -v "$(pwd)":/opt \
    -w /opt \
    laravelsail/php81-composer:latest \
    bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium "

cd example-app

またphp ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium "の部分を見ると分かると思うが、mysqlなども使うことができる。つまり、mysqlなどのDBをわざわざ用意しなくていいというわけだ。めちゃくちゃ助かる〜!

デスクトップに適当なフォルダを用意して、上のコマンドをターミナルを開いて打つ。

デスクトップ上にフォルダを用意
ダウンロードしたいフォルダをしっかり設定しておく
Laravel久しぶり。

ある程度進むと、パスワードを聞かれるので間違いないように打つ。このパスワードはPC自体にログインする時のものだ。一見キーボードの文字が反映されていないように見えるが、裏では打てているので気にせず入力しよう。

パスワードは非表示だがしっかり打てている。

以下が出れば成功。

DLした後は、以下のコマンドを打って起動する。

cd example-app

./vendor/bin/sail up

成功すれば、以下のようになるはずだ。

./vendor/bin/sail up -d-dオプションをつけた方がターミナルに色々表示されなくて見やすいかも

コンテナが立ち上がっているってことでいいのかな?
Dockerのダッシュボードも同じく起動してそうな感じだ。

この状態で http://localhostにアクセスすれば以下のように表示される。

あっという間にLaravelの画面まで

たったこれだけのコードでmysql付きの環境が作れてしまう。

Aliasを作成する

一々、./vendor/bin/sail upって打っていくのめんどくさいのでエイリアス作成しよう。以降はsailコマンドだけでOKになるぞ。以下のコマンドを打とう。

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

phpMyAdminを追加する

一応、mysqlまで含めた環境が秒で構築できたが、自分も含め初心者の内は、DBを可視化できるようにphpMyAdminが必要だと思う。もちろんこれも簡単に設計できる。

以下の記事を参考に、docker-compose.ymlファイルにコードを追加していく。このymlファイルはDockerを使うときの設定ファイルみたいなものでここに使いたいサービスを記載していく。

iret.media
iret.media | クラウドを使って、もっと世界を楽しくしたい。クラウドの活用方法から新サービスの裏側、さ... ページが見つかりませんでした『iret.media』は、アイレット株式会社が運営するオウンドメディアです。「クラウドを使って、もっと世界を楽しくしたい」をモットーに、クラ...
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

ymlファイルはインデント(字下げ)がめちゃめちゃ大事らしく少しでもずれてしまうとダメらしいので、しっかり揃えてあげよう。

インデントを意識しよう。

もう一度sail up -dコマンドでコンテナを立ち上げると、その中にphpmyadmin_1と書かれているはずだ。

phpmyadminのコンテナが立ち上がった。

後は、http://localhost:8080/にアクセスすると、ログイン画面が表示される。

ユーザー名とパスワードを入力してログインしよう。

ユーザー名とパスワードは.envファイルに記載されている。DB_USERNAMEDB_PASSWORDに書かれているのがそれだ。今回だとユーザー名がsailで、パスワードがpasswordだ。

.evnファイルを確認しよう。

管理画面からログインに成功すれば完了だ。

ログインに成功

これでDBも揃ったからバリバリ開発していこう。

まとめ

  • Dockerをインストールする。
  • curl -s "https://laravel.build/example-app" | bashコマンドを好きなフォルダ上で実行する。
  • 落としてきたLaravelアプリ上に移動して./vendor/bin/sail upコマンドを打って起動する。
  • phpMyAdminを入れたい場合はymlファイルに記載してから、再度上のコマンドで起動する。

ここまであっという間に環境構築できた。また、phpmyadminも使えるのはめちゃくちゃありがたい。
よくsailを使うと爆速で構築と書かれているのは嘘じゃないなあ。
自分もそうだが、初心者の方は確実に環境構築でつまづくと思うのでぜひ参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次