云效流水線(Flow)具備 Docker 部署能力,其部署目標來源于流水線上游的構建產物,例如阿里云鏡像構建和自定義鏡像構建等。本文將主要介紹如何添加鏡像構建與 Docker 部署任務,以及如何配置 Docker 部署任務。
添加鏡像構建、Docker 部署任務
新建流水線,按需添加鏡像構建任務。
指定鏡像構建 Dockerfile 路徑,詳細信息,請參見云效spring-boot示例dockerfile。
添加 Docker 部署任務。
配置 Docker 部署任務
進入部署任務,進行如下配置:
新建主機組或者選擇一個主機組,主機組用于管理部署的機器資源。關于如何創建主機組,請參見主機組管理。
說明通過 Docker 部署的機器需要您自行在機器上安裝 Docker 軟件。
配置Docker部署腳本。
當您所操作的鏡像來自您的私有倉庫時,您需要提供授權信息,為了安全起見,您可以使用 Flow 提供的變量功能,在變量中設置 Docker 登錄用戶名和密碼
DOCKER_USERNAME
和DOCKER_PASSWORD
。在目標流水線編輯頁面,選擇 ,單擊新建變量,配置變量信息。在部署腳本中使用登錄鏡像倉庫命令操作,
echo ${DOCKER_PASSWORD} | docker login --username ${DOCKER_USERNAME} --password-stdin registry.cn-hangzhou.aliyuncs.com
(鏡像倉庫地址根據您的項目實際情況輸入 )此后相關命令即可對私有倉庫鏡像進行操作。 如下是部署腳本中登錄鏡像倉庫的操作命令。echo ${DOCKER_PASSWORD} | docker login --username ${DOCKER_USERNAME} --password-stdin registry.cn-hangzhou.aliyuncs.com
配置變量,變量分為兩種類型。
一種是上游輸出變量,上游輸出產物可以是阿里云鏡像構建產物,也可以是自定義鏡像構建產物。配置上游產物的變量
image
鏡像地址。另一種可以配置自定義變量,在執行命令時變量會寫入機器環境變量中,從而可以直接使用,例如部署腳本,添加自定義變量
appname
賦值flow-example
用作容器名稱。如下是部署腳本中一個典型的運行Docker容器命令。
docker run -d --name ${appname} ${image}
配置部署策略,避免不穩定發布對用戶的影響,保障業務交付的穩定。
運行并查看目標流水線任務
在運行流水線任務完成后,在Docker部署節點,單擊部署詳情,可查看日志。