當您需要從Git拉取代碼,并在單臺ECS上完成本地的構建與部署,您可以使用ECS的構建部署功能,快速完成本地構建與部署。
適用場景
適用于在單臺ECS上構建部署。如果您需要在多臺ECS實例上部署應用,請參見構建部署示例模板。
代碼源為Gitee或GitHub平臺的代碼倉庫。
前提條件
部署應用的ECS實例需滿足以下條件:
ECS實例為Linux操作系統。
ECS實例需開通公網。具體操作,請參見為ECS實例開通公網。
ECS實例必須處于運行中狀態。
ECS實例已安裝云助手,并且云助手狀態為正常。
示例代碼
本文操作使用了一個Spring Boot的項目代碼來演示,代碼已上傳到Gitee和GitHub倉庫,如果想要使用,請先fork到自己的倉庫。代碼地址:
Gitee:gitee示例代碼(中國內地地域建議使用Gitee)
GitHub:github示例代碼
操作步驟
以下操作以Alibaba Cloud Linux 3.2104操作系統為例,不同環境可能會相關的構建部署命令不同,請按需調整。
登錄ECS管理控制臺。
在左側導航欄,選擇 。
在頁面左側頂部,選擇目標資源所在的資源組和地域。
找到目標ECS實例,單擊實例ID進入實例詳情頁,選擇
。單擊創建執行,填寫代碼源配置和構建部署配置,然后單擊下一步。
代碼源配置:選擇所有者、組織、倉庫。
重要首次使用時,請單擊前往授權,授權阿里云從您的Github/Gitee倉庫拉取代碼。
如果使用示例代碼,請先fork到自己的倉庫,您可以在倉庫下拉列表中找到對應代碼庫。
下載路徑默認為
/root/workspece/{執行ID}
。如需指定路徑,請確保您提供的路徑下沒有文件,否則會拉取失敗。
構建部署配置:
是否使用Docker構建:如果選擇是,系統會檢測您的ECS上是否已安裝Docker,如果沒有會為您自動安裝。您在構建部署腳本中可直接使用Docker相關命令。
重要Docker構建僅支持以下操作系統:
Alibaba Cloud Linux 3/2
CentOS 7.7/7.8/7.9
Ubuntu 18.04/20.04/22.04/24.04
Debian 11/12
構建部署腳本:您可以根據業務需要,編寫部署腳本。
重要以下示例腳本供您參考,您可以復制到構建部署腳本框內。
以下示例腳本需您將示例代碼中的代碼fork到自己的倉庫才能使用。
本地部署腳本示例
##### Sample Java Deploy Script ##### for ECS on Alibaba Cloud Linux 3.2104 # 構建當前版本jar包 set -e yum install -y maven-3.5.4 mvn package # 停止上一版本的應用(如有),并部署當前版本 PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi java -jar target/sample-spring-1.0-SNAPSHOT.jar & ##### end
Docker部署腳本示例
# 構建當前版本的鏡像 docker build -t myapp:latest . container_name="my-container" # 停止上一版本的容器(如有) container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker stop $container_id docker rm $container_id fi # 啟動當前版本的容器 docker run -d -p 8080:8080 --name ${container_name} myapp:latest
確認基本信息和任務信息,單擊確定。
該執行任務會從您指定的代碼倉庫拉取代碼到ECS實例,并在您的代碼根目錄運行構建部署腳本。
當執行狀態為已完成,說明部署已完成。
本文示例中,您可以在瀏覽器中輸入
http://ECS實例公網IP:8080/hello
查看已部署的應用。頁面返回如下信息,說明已部署成功。說明本文示例ECS需開通入方向8080端口,具體操作,請參見添加安全組規則。
當您修改代碼并推送到代碼庫后,您可以單擊再次執行,部署腳本會檢測并停止已部署應用,然后重新拉取部署最新的代碼。
相關文檔
更多部署應用模板,請參見構建部署示例模板。