使用云校部署时, 我需要手动到主机执行部署命令, 当选用主机部署时,无法获取到上一步构建出来的镜像变量名称, 当选用docker部署时,无法拿到上一步的制品包,选用k8s发布,无法到主机上执行shell命令, 能指导下怎么实现这个云效需求吗?
能指导下怎么实现这个云效需求吗?[阿里云云效]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
使用云校部署时, 我需要手动到主机执行部署命令, 当选用主机部署时,无法获取到上一步构建出来的镜像变量名称, 当选用docker部署时,无法拿到上一步的制品包,选用k8s发布,无法到主机上执行shell命令, 能指导下怎么实现这个云效需求吗?
要实现您描述的云效需求,即在部署过程中获取上一步构建生成的镜像名称或制品包,并在主机上执行命令,可以考虑以下解决方案:
使用环境变量传递数据:在构建阶段,将镜像名称或制品包路径等信息通过环境变量传递给部署阶段。这样,无论是主机部署还是使用容器技术如 Docker 或 Kubernetes 进行部署,都可以从环境变量中获取到这些数据。您可以在构建脚本或配置文件中设置环境变量,并在部署脚本或配置中读取它们。
使用持久化存储:如果需要在部署过程中访问先前构建的制品包,可以将制品包上传到持久化存储(如云对象存储服务)中,并在部署过程中从存储中下载。您可以在构建阶段将制品包上传到适当的存储位置,并在部署阶段中使用相应的工具从存储中下载。
使用远程执行命令工具:对于使用容器技术进行部署的情况,可以使用类似于docker exec或kubectl exec的远程命令执行工具,在目标容器中执行所需的命令。这样,您就可以在部署阶段执行特定的命令,而不需要手动登录到主机执行。
您在这里获取上一个构建任务构建出来的镜像:
之后您定义的这个变量可以直接在命令里使用。
此回答整理自钉群“云效交付域答疑群”