はじめに
みなさん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をいじるだけで簡単に切り替えられます。
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にしてます。
.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
よかったら参考にしてください。