将图像从 Openshift Imagestream 推送到 AWS ECR

时间:2021-02-01 13:51:19

标签: docker openshift gitlab-ci amazon-ecr

我们有企业 Openshift 集群,在该集群上配置了 Gitlab Runner。 我无法以 root 权限或 anyuid 运行 Pod。没有 root 任何 docker、kaniko、buildah 命令都会失败。 我只能使用标准 Openshift 工具构建 docker 镜像:

oc get bc $APPLICATION_NAME || oc new-build --strategy docker --binary --name=$APPLICATION_NAME --to=$APPLICATION_NAME

现在我需要将此映像从 Openshift ImageStream 推送到 Aws ECR 存储库。 Openshift ImageStream 只能在内部访问。 有任何想法吗?我花了几天但没有运气。

1 个答案:

答案 0 :(得分:0)

您需要配置您的 BuildConfig 以将您的图像推送到外部注册表。可以在此处的旧博文中找到示例:https://www.openshift.com/blog/pushing-application-images-to-an-external-registry

所以基本上你会想要做 oc edit bc <mybuildconfig> 然后将 spec.output 更改为这样的:

[..]
spec:
  output:
    to:
      kind: DockerImage
      name: myregistry.example.com/mynamespace/myimagename:latest
    pushSecret:
      name: registrysecret
[..]

您可以使用如下命令创建的 registrysecret

oc create secret docker-registry registrysecret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

您可以在 OpenShift 文档中找到更多信息: