佈署CapRover
佈署CapRover
一鍵安裝Apps / Database
以下是官方的 Demo 頁面,密碼是 captain42。登入後,前往 Apps 頁面,可以看到官方預設建立好的幾個應用程式,且不同程式語言。由此可知只要把你的程式打包成 Docker,就能部署到 CapRover。
官方Demo
密碼是 captain42
- demo-nodejs
- demo-php
- redirect-test
- wordpress-db
- wordpress-wordpress
在此頁面點選按鈕**[One-Click Apps/Databases],內有許多可以一鍵安裝的服務,比如說想要安裝資料庫,搜尋sql出現各種各種資料庫服務,MsSql、MySql、PostgreSQL、MongoDb等等主流資料庫,用內建的一鍵安裝可以非常輕鬆的就可以建立一個服務。可以看看有沒有適合的服務可以安裝,如果沒有,也可以後續安裝dockerhub的服務。
記錄一下 Redis 安裝過程
建立app,輸入app name,勾選Has Persistent Data。
進入頁籤 App Config,設定一下Port對應,redis預設6379 Port,我這邊是設定外部63791對應容器內部6379,這部份看個人需求設定就可以。
進入頁籤 Deployment,找到Deploy via ImageName,輸入redis,點選Deploy Now,Redis就輕鬆建立完成。
CLI 部署
除了透過網頁介面操作,CapRover 也提供了強大的命令列工具 (CLI),讓您可以更自動化、更快速地進行應用程式的部署與管理。
1. 安裝 CapRover CLI 工具
首先,您需要使用 npm (Node.js 的套件管理器) 來全域安裝 CapRover CLI 工具。請確保您的系統已安裝 Node.js 和 npm。
1 | npm install -g caprover |
2. 登入 CapRover 伺服器
安裝完成後,您需要登入到您的 CapRover 伺服器。執行以下命令,並依照提示輸入您的 CapRover 伺服器 URL (例如:https://captain.your-domain.com
) 和密碼。
1 | caprover login |
3. 拉取 Docker 鏡像並部署
登入成功後,您就可以使用 CLI 來部署應用程式了。以下範例示範如何拉取一個 Docker Hub 上的鏡像 (例如 nginx
) 並部署到您的 CapRover 應用程式。
首先,確保您已經在 CapRover 介面中建立了一個應用程式(例如:my-nginx-app
)。
1 | # 進入您的專案目錄 (如果您的應用程式有 Dockerfile) |
--appName
: 指定您在 CapRover 中建立的應用程式名稱。--imageName
: 指定要部署的 Docker 鏡像名稱和標籤 (例如nginx:latest
)。
如果您是從本地的 Dockerfile 部署,則可以使用:
1 | # 在您的專案根目錄下執行 |
這個命令會自動尋找當前目錄下的 Dockerfile
,建構映像,然後部署到指定的應用程式。
4. 在 Azure DevOps Releases 中實現自動部署
CapRover CLI 工具的強大之處在於它可以被整合到 CI/CD (持續整合/持續部署) 流程中,實現自動化部署。在 Azure DevOps 的 Releases Pipeline 中,您可以添加一個「Command Line Script」任務,並在其中執行 CapRover CLI 命令來自動部署您的應用程式。
實現步驟概述:
- 安裝 Node.js 和 CapRover CLI:在 Release Agent 上,確保安裝了 Node.js 和 npm。您可以在 Pipeline 中添加一個任務來執行
npm install -g caprover
。 - 登入 CapRover:使用
caprover login
命令登入。為了安全起見,您應該將 CapRover 伺服器 URL 和密碼作為 Azure DevOps 的 Secret Variables 儲存,並在腳本中引用它們。1
2
3# 假設 CapRover URL 和密碼儲存在 Azure DevOps 的變數中
# $(CapRoverUrl) 和 $(CapRoverPassword)
caprover login -i $(CapRoverUrl) -p $(CapRoverPassword) - 執行部署命令:在登入後,執行
caprover deploy
命令來部署您的應用程式。1
2
3
4# 部署您的應用程式
caprover deploy --appName your-app-name --imageName your-docker-image:$(Build.BuildId)
# 或者如果從本地 Dockerfile 部署
# caprover deploy --appName your-app-name --caproverUrl $(CapRoverUrl) --caproverPassword $(CapRoverPassword)your-docker-image:$(Build.BuildId)
:這裡的$(Build.BuildId)
是一個 Azure DevOps 預定義變數,可以用來作為 Docker 鏡像的標籤,確保每次部署都是最新的版本。- 在 CI/CD 環境中,建議使用
--caproverUrl
和--caproverPassword
參數直接在命令中傳遞憑證,而不是依賴互動式登入。
透過這種方式,每次當您的程式碼有新的版本準備好發佈時,Azure DevOps Releases 就可以自動觸發 CapRover 的部署,大大提升開發效率和部署的可靠性。