2

I would like to build an image from a Dockerfile using an OpenShift BuildConfig that references an existing ImageStream in the FROM line. That is, if I have:

$ oc get imagestream openshift-build-example -o yaml
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
  name: openshift-build-example
  namespace: sandbox
spec:
  lookupPolicy:
    local: true

I would like to be able to submit a build that uses a Dockerfile like this:

FROM openshift-build-example:parent

But this doesn't work. If I use a fully qualified image specification, like this...

FROM image-registry.openshift-image-registry.svc:5000/sandbox/openshift-build-example:parent

...it works, but this is problematic, because it requires referencing the namespace in the image specification. This means the builds can't be conveniently deployed into another namespace.

Is there any way to make this work?

For reference purposes, the build is configure in the following BuildConfig resource:

apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
  name: buildconfig-child
spec:
  failedBuildsHistoryLimit: 5
  successfulBuildsHistoryLimit: 5
  output:
    to:
      kind: ImageStreamTag
      name: openshift-build-example:child
  runPolicy: Serial
  source:
    git:
      ref: main
      uri: https://github.com/larsks/openshift-build-example
    type: Git
    contextDir: image/child
  strategy:
    dockerStrategy:
      dockerfilePath: Dockerfile
    type: Docker
  triggers:
    - type: "GitHub"
      github:
        secretReference:
          name: "buildconfig-child-webhook"
    - type: "Generic"
      generic:
        secret: "buildconfig-child-webhook"

And the referenced Dockerfile is:

# FIXME
FROM openshift-build-example:parent

COPY index.html /var/www/localhost/htdocs/index.html
Zeitounator
  • 38,476
  • 7
  • 53
  • 66
larsks
  • 277,717
  • 41
  • 399
  • 399

0 Answers0