在我的OpenShift模板中,我具有以下BuildConfig:
- kind: BuildConfig
apiVersion: v1
metadata:
name: "webapp-build"
spec:
triggers:
- type: ImageChange
source:
type: Binary
strategy:
sourceStrategy:
from:
kind: DockerImage
name: jboss/wildfly:11.0.0.Final
output:
to:
kind: ImageStreamTag
name: "webapp-image:latest"
resources:
limits:
cpu: 1
memory: 1Gi
我打电话给:
oc start-build "webapp-build" --from-file=target/ROOT.war
但是我在专用的OpenShift上收到此错误:
Pulling image "jboss/wildfly:11.0.0.Final" ...
error: build error: image "jboss/wildfly:11.0.0.Final" must specify a user that is numeric and within the range of allowed users
这是为什么?
最佳答案
看起来您正在使用非s2i图像进行sourceStrategy构建。您收到错误的原因是因为图像指定了非数字用户。
$ docker inspect docker.io/jboss/wildfly:11.0.0.Final | jq '.[] | .Config.User'
"jboss"
这会在开始s2i(sourceStrategy)构建之前执行的IsUserAllowed检查中引发错误。
如果我正确理解了您的需求,那么您可能正在为构建寻找s2i-wildfly image。
jboss/wildfly
镜像是不打算用于s2i的运行时镜像(即,没有s2i脚本)。因此,请改用此sourceStrategy
: sourceStrategy:
from:
kind: DockerImage
# Uses WildFly 11.0
name: "openshift/wildfly-110-centos7:latest"
另外,如果您确实要使用该特定图像,则可以执行以下操作。
ImageStreamTag
(而不是构建配置中的DockerImage
)使用它。 oc new-build -D $'FROM docker.io/jboss/wildfly:11.0.0.Final\nUSER 1001' --to=wildfly:latest
。 sourceStrategy
配置中的