我目前正在尝试在在线版本的Openshift(Starter)上部署应用程序。
我的应用程序在Github public repo上包含它的源代码,并且已经有一个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(使用默认的开发者帐户)部署了相同的应用程序,一切都很好。
这是Red Hat的全局限制,还是我在帐户配置中遗漏了一些内容?
感谢。
答案 0 :(得分:2)
OpenShift Online目前不支持docker build策略。这是因为提供该功能会给平台带来安全风险,因为构建必须具有提升的权限。提升的权限使得从BotFather
运行以构建图像的步骤可以作为/setinlinefeedback
执行。风险在于docker构建代码存在安全漏洞,在这种情况下,用户可能成为群集中计算机上的root用户。作为一个你不拥有的共享系统,这会影响你自己,以及它被阻止的原因。
您可以做的是在您自己的系统上构建映像,登录OpenShift为您提供的注册表,然后将映像推送到OpenShift以便您可以使用它。