久しぶりに自宅のPCでLaravelの開発環境を構築してみることになったので、今まで仕事でも利用したことなかったDockerを利用しての環境構築を試してみた。
Laravelの場合はLaravel SailというDocker環境で簡単に環境構築できるものが用意されているようなので、これを使って構築してみた。
WSL2有効化
まずはWindows機のWSL2を有効化する。
PowerShellを管理者で起動して以下のコマンドを実行。
wsl --install
インストール後はPCを再起動。同じくPowerShellでUbuntuをインストール。
wsl --install -d Ubuntu
インストール後は以下のコマンドで確認が可能。
wsl -l -v
NAME STATE VERSION
Ubuntu Running 2
Docker Desktopのインストール
上記のサイトからDockerのインストーラーをダウンロードし、インストール。
インストール完了後はPowerShellで以下のコマンドをそれぞれ実行し、バージョン情報が出ればOK。
docker --version
docker compose version
その後、Docker Desktopを起動し、右上の歯車アイコンからResources→WSL Integrationタブへ進み、Ubuntuを有効化する。
Laravel Sailインストール
Ubuntuのコンソールを開いて以下のコマンドを実行。
※初回起動時はユーザー名とパスワードの設定が必要。
curl -s https://laravel.build/myapp | bash
※「myapp」はプロジェクト名なので適宜付けたい名前があれば変更する。
これだけでLaravelの環境が作成される。myappディレクトリ以下に見慣れたLaravelの各ファイルが配置されている。
myappディレクトリ下で以下のコマンドを実行してコンテナを起動
./vendor/bin/sail up -d
※Laravelのartisanコマンドを実行する度に./vendor/bin/sailが必要なので、エイリアス登録しておくと楽。
alias sail='bash ./vendor/bin/sail'
これでhttp://localhostにアクセスするとLaravelのデフォルト画面が出るので、これで環境構築が一旦完了。
昔Vagrantなどを使って構築した時に比べるとかなり楽に環境構築することができた。
artisanコマンドは基本以下の方法で実行する。
sail artisan migrate
Cursor導入
最近社内でも導入が少しずつ進み始めているCursorを今回は一緒に導入してみた。
全く触ったことがないので色々と手探りでしたが・・・なんとか開発できる状態にまで準備できた。
まずはCursorの公式サイトからインストーラーをダウンロードしてインストール。
Coursor起動後は案内に沿ってアカウントを作成。
アカウントが作成できたらCursorが起動されるが、Agentの画面とエディタの画面が別なので最初Agentの画面が立ち上がった時はどうやってコーディングするんだ?と思ったが、その画面の右上の「Edior Windows」からエディタが立ち上がった。
新規プロジェクトでLaravelインストール時に作成したプロジェクトディレクトリを指定してようやく最低限開発できる状況になった。
仕事での開発はずっとPHPStrormでコーディングしていたのでCursorはもちろん、VSCodeもほぼ知識無しだが、色々と触ったり便利なプラグインとかを入れてみたりして慣れていきたい。
Dockerの仮想環境についてはコマンドで起動、終了とかもできるけどDocker Desktopで簡単に操作もできるのでこのあたりも便利そう。
慣れていないと昔は環境構築に丸一日費やしたりしていたが、Docker自体初めて触る自分でもすぐに環境構築できて便利だと感じた。
DBeaverの導入、設定
DBのクライアントツールは普段業務ではpgAdmin4を利用しているがせっかくのプライベートな環境なのでちょっと違うものを使ってみようと今回は環境した構築と相性良さそうなDBeaverを導入してみた。
まずはDBeaverのインストール
https://dbeaver.io/download/
インストール時はほぼ設定をいじらずそのままでインストール。
インストール後にとりあえず立ち上がることだけ確認したら今度はプロジェクト側の設定。
まずmySqlの起動確認
sail ps
mySqlのコンテナのステータスがupになっていることを確認したら、.envの編集
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
FORWARD_DB_PORT=3306
DB名やユーザー名、パスワードは任意のものを設定。設定したらconfig:cacheで反映。
docker ps
mySqlの行で0.0.0.0:3306->3306/tcpのようになっていればポートの公開も問題なし。
DBeaverから新規データベースを選択し、MySQLを選択。
設定画面で先ほど.envに設定した値を入力していく。Hostはlocalhost。
設定後の初回接続時にドライバーのダウンロードを促されたらダウンロード。
これでDBeaverでプロジェクトのDBに接続されるようになったのでDB内のテーブルを確認すると、初回migrateで作成されたテーブルなどが確認できた。