Laravel 開發以Docker安裝

先安裝 Docker Desktop

用 windows Terminal 開啟 ubuntu 終端機

安裝 laravel 使用以下指令
curl -s https://laravel.build/example-app | bash
其中的 example-app 可以用想要的專案名稱取代.
laravel 會在 WSL user 目錄底下建立專案目錄並將相關檔案放入.
安裝好 laravel 後到專案目錄底下執行 sail 啟動.
cd example-app
./vendor/bin/sail up

若要簡化輸入的 sail 命令, 可以將以下 bash 加入 .bashrc 或是 .zshrc 中
alias sail='bash vendor/bin/sail'
或是在專案目錄中執行
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
這樣就可以在專案中直接輸入 sail up -d 在背景啟動

在 sail 中加入 phpmyadmin,
以VS Code 開啟 WSL user 目錄底下的 docker-compose.yml 這一個檔案, 加入以下的內容.
phpmyadmin:
image: 'phpmyadmin:latest'
ports:
- 8081:80
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
links:
- "mysql:db"
depends_on:
- mysql
networks:
- sail

sail 的 mysql 帳號 sail(root) 及密碼 password 可以先登入 mysql 修改 sail 的權限, 在專案目錄執行以下的指令
docker-compose exec mysql bash
執行 mysql -u root -p 登入, 預設的密碼為 password,登入後執行以下 sql 指令
GRANT ALL PRIVILEGES ON *.* TO 'sail'@'%';
完成後再執行
FLUSH PRIVILEGES;
這樣就可以從 loccalhost:8081/phpmyadmin 登入了

sail 常用的指令

sail up 啟動 sail , 若要中斷, 使用 Ctl+C 中斷
sail up -d 在背景執行 sail
sail stop 終止所有 Laravel Sail 所有服務容器。
sail down 想要終止在背景執行的 Laravel Sail 並刪除所有服務容器的話。
sail build --no-cache 重新建立 docker 上面的 image 檔案。

要在專案開發使用 VS Code, 在終端機中輸入 code . , 系統中若無 VS Code 會自動安裝
安裝完成後就會自動開啟 VS Code.


如果在 chrome 中無法以 http://localhost 開啟網頁, 實際原因是 Chrome 強制將 http 網站導向 https, 請檢查一下 chrome 的 chrome://net-internals/#hsts 將裡面的 localhost 取消.

參考資料
https://laravel.com/docs/10.x/installation#getting-started-on-windows
https://laravel.com/docs/10.x/sail
https://gist.github.com/Daniyal-Javani/6352d7c2e4efd710a4f432c2677a39ad
https://gist.github.com/jjsquady/e12ce89c9029d520ce08f60a9ff8f304
https://docfunc.com/posts/47/%E7%94%A8-laravel-sail-%E4%BE%86%E5%BB%BA%E7%BD%AE-laravel-%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83-post
https://blueskyson.github.io/2022/09/25/chrome-http-localhost/