我们有企业 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 只能在内部访问。 有任何想法吗?我花了几天但没有运气。
答案 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 文档中找到更多信息: