Skip to content

Instantly share code, notes, and snippets.

@niratama
Last active October 29, 2023 23:49
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save niratama/b9611694f5f20d7819544a2399155cdc to your computer and use it in GitHub Desktop.
Save niratama/b9611694f5f20d7819544a2399155cdc to your computer and use it in GitHub Desktop.
git cloneしたLaravelプロジェクトをSailできるようにするためのスクリプト(やっつけ)

git cloneしたLaravelプロジェクトをSailできるようにするためのスクリプト(やっつけ)

Laravel Sail が絶妙に使いづらかった件 - Qiitaにもある通り、そのままプロジェクトをgit commitするとgit cloneしてもSailが使えないので悩ましい。

リンク先にある手法だとvendor以下のファイルをリポジトリに突っ込んでしまうのでまた微妙な感じなので、コンテナ自身にがんばってもらうスクリプトを用意してみました。

リポジトリ側の準備

.envのアプリケーションキーだけ抜いたコピーを.env.example-sailとしてリポジトリにcommitしておいてください。

このスクリプトはリポジトリに突っ込んでも拾ってどっかに置いて実行でもOK(どうせgit clone直後の最初の1回しか使わないけど)

git clone後の手順

プロジェクトディレクトリのルート(普段sailするとこ)でスクリプトを実行してください。

設定変更できるように作ってあるけど特に必要ないはず。

実行が終わったらsail upしてマイグレーションなりシーディングなりどうぞ。

#!/bin/bash
export APP_DIR=${APP_DIR:-$(pwd)}
export APP_SERVICE=${APP_SERVICE:-"laravel.test"}
export WWWUSER=${WWWUSER:-$UID}
export WWWGROUP=${WWWGROUP:-$(id -g)}
export SAIL_USER=${SAIL_USER:-"sail"}
run_container () {
docker-compose run --rm --no-deps -e WWWUSER=${WWWUSER} -e WWWGROUP=${WWWGROUP} --volume="${APP_DIR}:/var/www/html" ${APP_SERVICE} "$@"
}
if [ ! -e .env ]; then
cp .env.example-sail .env
fi
run_container composer install
run_container php artisan key:generate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment