amazon-web-services - Openshift 将图像复制到另一个图像存储库
问题描述
我有一个带有 buildConfig 的 openshift 部署,如下所示:
apiVersion: v1
kind: BuildConfig
metadata:
name: '#OKD_COMPONENT_NAME#'
spec:
output:
to:
kind: ImageStreamTag
name: '#OKD_COMPONENT_NAME#:latest'
runPolicy: SerialLatestOnly
source:
git:
uri: '#CI_REPOSITORY_URL#'
ref: '#CI_COMMIT_REF_NAME#'
type: Git
contextDir: #OKD_COMPONENT_NAME#
strategy:
dockerStrategy:
buildArgs:
- name: "CA_HOSTS_LIST"
value: "get-ca-cert.apps.test.fr:443 get-ca-cert.apps.test.fr:443 get-ca-cert.apps.test.fr:443"
type: Docker
triggers:
- type: ConfigChange
- imageChange: {}
type: ImageChange
在构建结束时,openshift 构建映像并将其推送到其内部注册表。
问题是我想复制该映像构建并将 openshift 内部注册表推送到 AWS ECR。openshift pods 必须使用 openshift 内部注册表中的图像创建,但我只想在 AWS ECR 中将该图像的副本自动推送到内部注册表。
我有办法可以实现吗?
解决方案
我尚未对此进行测试,但oc image mirror
命令可能适合您的用例,有关详细信息,请参阅传输图像
。该命令可以将注册表中的一个镜像复制到多个注册表中。例如,它显示了如何将内部图像“image:latest”复制到docker.io
和quay.io
。
oc image mirror docker-registry.default.svc.cluster.local/project/image:latest \
docker.io/project/image:stg \
quay.io/project/image:prod
对于自动化,您可以通过使用配置提交后构建挂钩触发器实现上述复制任务的脚本来执行此操作,或者您可能需要更复杂的构建过程,例如Jenkins Pipeline。
推荐阅读
- amazon-web-services - openapi 发送动态文件名以响应文件
- apache - Apache LDAPS 配置
- c# - 在 Visual Studio 中添加的第三方 dll:您是否缺少 using 指令或程序集引用
- javascript - 节点列表是数组吗?
- python - 混合内置 Python 数值类型和 Numpy 标量数值数据类型的计算性能
- python - 当某个迭代在python中花费太多时间时,如何继续下一次迭代?
- sharepoint-online - 如何找到我分配了唯一权限的网站页面集?
- ibm-midrange - 如何从 AS/400 中的字段中拆分值?
- python - 在哪里使用缓存和 Python Dash 回调
- rabbitmq - 无法登录到 CDK 创建的 Amazon MQ (RabbitMQ) Web 控制台