【Host】利用Render搭配Dockerfile部署Laravel專案吧!(類似Heroku的服務商推薦!)
【Why】
你的Side Project只有在本地測試?太low了吧,這樣要怎麼展示自己酷酷的作品
如果使用第三方API的Call Back(如 Line Login or Webhook、第三方金流) 該怎麼辦?
要有部署主機、主機要安裝環境、ssl、DNS、url 都要時間、金錢
【How】
Render的運作流程:
- 準備好你的專案 也可以直接fork render提供的laravel範例
- 建立資料庫
- 在render連動github
- 製作Dockerfile (不懂Docker? Render提供多種Docker的Deploy Example) 這邊筆者Ryan會小小講解一下下 至於Docker的介紹 我們會下次會專門寫一篇XD
- 設定參數..等等
【What】
Render 是一間雲平台即服務的品牌,相信有接觸網頁開發的觀眾應該都聽過Heroku,
甚麼?沒有嗎?
像是GCP、AWS這類的雲端服務提供商就不可能沒聽過了吧
筆者Ryan在工作時有接觸GCP、AWS,自己之前有用過Heroku架設個人網站
這次偶然碰到這間,試了一下從開始到部署完一個GO的網站,大概十分鐘左右
甚至都不需要打到一行Code、下到一行Command
【優點】
- 輕鬆達到CI/CD
- 不需要繁瑣的部署環境
- 免費:D
【缺點】
- 免費方案的限制,如同Heroku,免費的部署若一段時間會自動休眠,等同於過一段時間後開啟網頁會需要一段時間,詳情,而且和Heroku相比,Render的休眠常常會5XX(Server Error)
- 若和Heroku相比,Heroku應該不需要用到Docker(太久以前用的,不太記得了),入門門檻相對高一些。
- 收費方式比較複雜,筆者Ryan目前還使用免費方案,目前還不太清楚它的分服務(主機、資料庫)收費,還是一次性月費,個人覺得前者機率比較大
- 使用PostgreSQL需要注意,免費方案一段時間會刪除資料。
- 相對於GCP、AWS,所提供的服務就沒有那麼多樣化,如:開設一台虛擬機,在上面裝你想裝的任何軟體,可以把所有服務通通開在一台。這個問題會回到,你的專案的部署方式,是否需要分不同主機、是否需要快速建成(這其實是關係到Docker,跟服務商無關)
【示範】
登入後進入Render後台,點選右上角的New並點選Web Service
Fork出來後會像這樣,注意左上角
需要新增APP_KEY,產生方式:到你的laravel專案底下輸入
php artisan key:generate --show
【小提示】
這邊放一些我自己遇到坑XD
- 還記得一開始說到的接第三方API嗎? 記得Laravel要記得改VerifyCsrfToken.php,這個會擋CSRF,如下圖(下圖是全開,記得在正式環境不要這麼設定,安全性問題)
- 我根據我自己的專案有在做一些調整(引用Jetstream 安裝npm..)
可以參考這個commit
留言
張貼留言