Openshift v3 Online 上的构建者角色



我目前正在尝试在Openshift(入门)的在线版本上部署应用程序。

我的应用程序在 Github 公共存储库中包含其源代码,并且已经有一个 Dockerfile(在我的本地 docker 机器上成功构建和测试)。

由于我已经在我的机器上克隆了 git 存储库,所以我刚刚尝试了以下命令:

oc new-app .
-> [...]
-> error: buildconfigs.build.openshift.io "myapp" is forbidden: build strategy Docker is not allowed

所以我尝试检查并为我的帐户定义新角色(我是角色绑定中的管理员)

oc policy can-i create buildconfigs
-> yes
oc describe policyBindings :default -n mynamespace
-> [...]
-> RoleBinding[admin]: 
->     Users: myemail@mail.com
oc policy can-i create builds/source
-> yes
oc policy can-i create builds/docker
-> no

所以我想创建一个新的特定角色来创建 docker 构建:

Dockerstategy.yaml

kind: Role
apiVersion: v1
metadata:
name: dockerbuilder
rules:
- resources:
- builds/docker
verbs:
- create 

但学徒也是被禁止的...

oc create -f dockerstrategy.yaml
-> Error from server (Forbidden): error when creating "dockerstrategy.yaml": role.authorization.openshift.io "dockerbuilder" is forbidden: user "myemail@mail.com" cannot grant extra privileges

我已经使用 Openshift Origin(使用默认开发人员帐户)使用相同的命令在本地部署了相同的应用程序,一切都很好。

这是来自红帽的全局限制,还是我的帐户配置中遗漏了某些内容?

谢谢。

OpenShift Online 目前不支持 docker 构建策略。这是因为提供该功能会给平台带来安全风险,因为生成必须具有提升的权限。提升的权限是,从Dockerfile运行以构建映像的步骤可以按root执行。风险在于 docker 构建代码存在安全漏洞,在这种情况下,用户可能会成为群集内计算机上的 root。作为一个你不拥有的共享系统,这将影响更多的你自己,所以为什么它被阻止。

您可以做的是在您自己的系统上构建映像,登录到 OpenShift 为您提供的注册表,然后将映像推送到 OpenShift 中,以便您可以使用它。

最新更新