云效流水线具备Docker部署能力,最终部署的目标来源于流水线任务镜像构建产物,本文将主要介绍如何使用流水线构建镜像完成Docker 部署任务。
新建Docker 部署流水线
在流水线Flow首页,单击新建流水线,选择流水线模板Java · 测试、构建镜像创建。
在流水线源阶段,单击添加流水线源,选择代码源类型Codeup,配置服务连接以及代码库相关参数。
在构建镜像阶段,单击镜像构建并推送至ACR(个人版),选择已授权的服务连接及ACR地域与仓库,指定标签与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部署详情
在运行流水线任务完成后,在