云效使用私有构建机运行shell命令打出的镜像,有办法作为下一个阶段的入参吗?发现了一个bug。
是的,您可以将云效使用私有构建机运行shell命令打出的镜像作为下一个阶段的入参。
在云效中,您可以使用“构建变量”功能来实现这一点。具体来说,您可以在当前阶段的“构建后操作”中添加一个“执行Shell脚本”任务,该任务用于获取私有构建机的镜像ID,并将其保存到一个环境变量中。然后,在下一个阶段中,您可以使用这个环境变量作为入参来引用该镜像。
例如,假设您在当前阶段中使用以下命令获取私有构建机的镜像ID:
IMAGE_ID=$(docker images | grep "<your-private-registry>" | awk '{print $3}')
其中,<your-private-registry>
是您的私有仓库地址。然后,您可以将该镜像ID保存到一个名为IMAGE_ID
的环境变量中:
echo "IMAGE_ID=${IMAGE_ID}" >> build.env
最后,在下一个阶段中,您可以使用${IMAGE_ID}
来引用该镜像。例如,如果您需要在该阶段中使用该镜像来构建一个新的镜像,可以使用以下命令:
docker build --build-arg IMAGE_ID="${IMAGE_ID}" -t my-new-image:latest .
是的,您可以将私有构建机运行shell命令打出的镜像作为下一个阶段的入参。具体来说,您可以在云效流水线中添加一个「Shell 脚本」步骤,在该步骤中使用 docker build
命令来构建镜像,并将该镜像作为下一步的入参。
例如,假设您已经使用私有构建机运行了以下 shell 命令:
docker build -t my-image:v1.0 .
这条命令会在当前目录下构建一个名为 my-image
、标签为 v1.0
的镜像。接下来,您可以在云效流水线中添加一个「Shell 脚本」步骤,并在其中执行以下命令:
docker tag my-image:v1.0 $ALIYUN_CLOUD_REPOSITORY_NAME/my-image:v1.0
这条命令会将本地的 my-image
镜像打上阿里云的镜像仓库地址和标签,以便将其上传到阿里云的镜像仓库中。然后,您可以在下一步中使用该镜像作为入参,例如通过指定 FROM
指令来使用该镜像作为基础镜像。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。