2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Sail小技集

Posted at

はじめに

みなさんLaravelでのWebアプリケーション開発にはDockerを使ってやってるかと思うのですが、以前紹介したこんな方法を使わずとも今は SailというLaravelの便利機能で超絶簡単に、しかも安定稼働する環境が作れるようになりました。つよい。

この頃は我らがBoomTechCafeのしゅんくんが色々投稿してくれても居ます。

そんなSailを使うに当たってちょこちょこっとした小技を紹介します。

PHPのバージョンを変える

Laravel11のSailで構築するとデフォルトではPHP8.3になるんですが、「8.4を使いたい!」「事情があって8.0に落としたい……」等色々ニーズがあると思います。
Laravel11のSailではPHP8.0~8.4の環境が用意されてますので、docker-compose.ymlをいじるだけで簡単に切り替えられます。

docker-compose.yml
services:
    laravel.test:
        build:
            context: './docker/8.3'
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: 'sail-8.3/app'

ここの 8.3 ってなってるところを変えるだけです。
一度でも sail up してるとすぐには反映されないので、 sail build し直しておきましょう。

Dockerfileを出力する

Laravel Sailを使うに当たって Dockerfileがvendor下に隠蔽されてる というのがあると思います。
とりあえずLaravelに触れたいだけならそれでも良いのですが、「入れたいミドルウェアがある」「そもそもDockerfileがないからGitHubActionでビルドしてECRに上げられへん」とかあると思います。
そんなときはこのコマンドを使ってみましょう。

./vendor/bin/sail artisan sail:publish

これでアプリケーションルート直下に docker というディレクトリが作られてDockerfileをいじれるようになります。
同時に docker-compose.yml 側のcontextの参照先もしれっと変更してくれるので便利です。

Makefileこんな感じにしました

公式(の翻訳)ドキュメントにも「エイリアスコマンド作ると楽でっせ」って言うのが書かれてるのですが、私はそれすらめんどくさいのでMakefileを作ってます。
この頃は makeじゃなくてtaskだ って言ってる勢も多いのは重々承知なのですが、taskのインストールをお願いして回るのも面倒なのでmakeにしてます。

Makefile
.PHONY: up
up:
	./vendor/bin/sail up -d
.PHONY: down
down:
	./vendor/bin/sail down
.PHONY: build
build:
	./vendor/bin/sail build
.PHONY: install
install:
	./vendor/bin/sail composer install && ./vendor/bin/sail npm install
.PHONY: migrate
migrate:
	./vendor/bin/sail artisan migrate
.PHONY: seed
seed:
	./vendor/bin/sail artisan db:seed
.PHONY: dev
dev:
	./vendor/bin/sail npm run dev

よかったら参考にしてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?