Google Cloud Run除了支援前端的語言外,甚至也支援後端的語言,而先前梅干分享過,透過Google表單串接金流,但為了防止金額被竄改,因此金流的部分得透過後端來執行,所以只需要PHP環境就好,無需任何的資料庫,但在租用虛擬主機時,極少有只提供PHP的空間租用,且租用時再便宜的方案也要一千起跳,因此那天梅干就研究了一下,如何透過Google Cloud Run架設Apache Server與支援PHP環境,且Google Cloud Run的最大好處就是,用多少算多少,因此相當適合用於放置金流模組,因此有只需要純PHP環境需求的朋友,不妨也一塊來看看,如何透過Google Cloud Run來架設PHP的網頁環境吧!
準備素材
1.CloudRun:https://console.cloud.google.com/
2.Google SDK:https://cloud.google.com/sdk/docs/quickstart
3.CloudSource:https://source.cloud.google.com/
4.專案初始化: sh ./google-cloud-sdk/bin/gcloud init
5.容器建立:gcloud builds submit ––tag asia.gcr.io/{project_id}/{images名稱-自訂}
2.Google SDK:https://cloud.google.com/sdk/docs/quickstart
3.CloudSource:https://source.cloud.google.com/
4.專案初始化: sh ./google-cloud-sdk/bin/gcloud init
5.容器建立:gcloud builds submit ––tag asia.gcr.io/{project_id}/{images名稱-自訂}
建立Clud Run服務
Step1
進入CloudRun後,點上方的「建立服務」。
Step2
接著設定服務名稱,並將部署平台區域,設為Taiwan。
容器建立
Step3
接著開啟端終機,輸入下方的指令後,接著選擇 配置設定、帳號、專案ID。
cd ~
sh ./google-cloud-sdk/install.sh
sh ./google-cloud-sdk/bin/gcloud init
sh ./google-cloud-sdk/install.sh
sh ./google-cloud-sdk/bin/gcloud init
Step4
接著在自己的專案目錄中建立Dockerfile,這邊梅干是採用php7.2.1版,以及apache的伺服器,都弄好後,進入自己的專案目錄,再輸入下方的指令,就會開始將本機的檔案,建立成容器並上傳到主機中,當建立成功時,會看到SUCCESS。
gcloud builds submit ––tag asia.gcr.io/{project_id}/{images名稱-自訂}
Dockerfile
FROM php:7.2.10-apache-stretch
COPY wwwroot/ /var/www/html/
EXPOSE 80
COPY wwwroot/ /var/www/html/
EXPOSE 80
Step5
完成後,再回到Cloud Run在容器的地方點後方的選取,就可看到剛所建立好的image。
Step6
接著再點進階設定,將容器的通訊埠設為80。
Step7
再點下方的建立。
Step8
當建立完成後,就會出現網址。
Step9
開啟後,就可進到剛的專案目錄中的php版本,檢測一下是否能正常的運作。
建立網站資料存放空間git
Step10
接著進入https://source.cloud.google.com/存放區,新增一個存放區,分別設定存放區的名稱,以及專案的ID。
Step11
建立完畢後,再用git指令,將專案的檔案,上傳到存放區中,若有用VS Code也可使用VS Code進行管理比較方便。
Step12
當完成後,重新整理網頁,就會看到剛所同步上去的檔案。
建立持續部署
Step13
點上方的「設定持續部署」。
Step14
再將存放供應商設為Cloud Source,並選擇剛所建立好的存放區名稱。
Step15
再Build的地方,將分支版本設為master,以及來源位置設為/Dockerfile。
Step16
都設定好後,以後只需要將更新的檔案,直接同步上去,Cloud Run就會自動部署啦!這邊梅干就將金流模組同步到專案中,這時Cloud Run立即就會開始進行佈署。
Step17
當佈署完畢後,就會看到剛所同步上去的測試金流的頁面資訊,而使用Cloud Run不但穩定,且用多少算多少,因此有金流模式,放到Cloud Run是個不錯的選擇。