btw, openshift will happily substitute your FROM statement w/ an image referenced by your BuildConfig, so if that's your goal, perhaps that is a way to accomplish it.
https://docs.openshift.org/latest/dev_guide/builds/build_strategies.html#docker-strategy-from On Wed, Feb 7, 2018 at 9:48 AM, Ben Parees <[email protected]> wrote: > > > On Wed, Feb 7, 2018 at 6:59 AM, Dan Pungă <[email protected]> wrote: > >> Hello all! >> I've recently discovered and join this mailing list; hope I'm in the >> right place. >> I'm new to the OShift ecosystem, currently trying to develop a >> configuration to containerize some apps. I'm using minishift local cluster >> on a Ubuntu 16.04 machine (details below). >> >> I want to write a parametrized yaml template to configure the build >> process for my layers (those with a dockerStrategy) with using(or, better >> said connecting to ) the arguments defined in my Dockerfiles. I have found >> that OShift doesn't support ARG instructions prior to the FROM one when it >> reads the Dockerfile. >> > > you sure even docker supports that? It's not working for me: > > this works (just using an arg generically and echoing it out): > > $ cat Dockerfile > FROM centos > ARG OS_name="centos" > > RUN echo $OS_name > RUN exit 1 > > $ docker build --build-arg OS_name=centos . > Sending build context to Docker daemon 2.048 kB > Step 1/4 : FROM centos > ---> ff426288ea90 > Step 2/4 : ARG OS_name="centos" > ---> Using cache > ---> 59f6494cb002 > Step 3/4 : RUN echo $OS_name > ---> Running in 092e2600490e > > *centos* ---> 8a3f570a033c > Removing intermediate container 092e2600490e > Step 4/4 : RUN exit 1 > ---> Running in 543cefc9eab8 > The command '/bin/sh -c exit 1' returned a non-zero code: 1 > > This does not (not even referencing the arg in my FROM, just putting the > ARG before FROM): > $ cat Dockerfile > ARG OS_name="centos" > FROM centos > > RUN echo $OS_name > RUN exit 1 > > $ docker build --build-arg OS_name=centos . > Sending build context to Docker daemon 2.048 kB > Step 1/4 : ARG OS_name="centos" > Please provide a source image with `from` prior to commit > > > > So i think this is a docker restriction, not an openshift one. > > > So, even if a docker build would run successfully with something like: >> >> ARG OS_name="centos" >> ARG OS_version="6.8" >> >> FROM ${OS_name}:${OS_version} >> #....rest of Dockerfile instructions... >> >> if I try to define in my yaml config >> strategy: >> dockerStrategy: >> buildArgs: >> - name: OS_name >> value: "7" >> >> the build process does not work. >> >> Has anyone else come across this issue and how did you get around it? >> What I'm trying to achieve is single configuration structure for multiple >> versions, so I wouldn't have to write separate Docker configs for different >> app versions. For example building a Java JRE layer on top of different OSs >> with one file. >> Thank you, >> Dan >> >> PS: The closest thread regarding this issue that I've found in the >> archive is https://lists.openshift.redhat.com/openshift-archives/users/ >> 2017-January/msg00104.html >> >> Running env details: >> >> oc version >> oc v3.6.0+c4dd4cf >> kubernetes v1.6.1+5115d708d7 >> features: Basic-Auth GSSAPI Kerberos SPNEGO >> >> Server https://192.168.99.100:8443 >> openshift v3.6.0+c4dd4cf >> kubernetes v1.6.1+5115d708d7 >> ========= >> >> docker@minishift:~$ docker version >> Client: >> Version: 1.12.3 >> API version: 1.24 >> Go version: go1.6.3 >> Git commit: 6b644ec >> Built: Wed Oct 26 23:26:11 2016 >> OS/Arch: linux/amd64 >> >> Server: >> Version: 1.12.3 >> API version: 1.24 >> Go version: go1.6.3 >> Git commit: 6b644ec >> Built: Wed Oct 26 23:26:11 2016 >> OS/Arch: linux/amd64 >> >> >> _______________________________________________ >> users mailing list >> [email protected] >> http://lists.openshift.redhat.com/openshiftmm/listinfo/users >> >> > > > -- > Ben Parees | OpenShift > > -- Ben Parees | OpenShift
_______________________________________________ users mailing list [email protected] http://lists.openshift.redhat.com/openshiftmm/listinfo/users
