[Container-tools] Trick to do a docker "multi-stage-build" using minishift ?

Charles Moulliard cmoullia at redhat.com
Thu Jun 21 10:42:15 UTC 2018


Many thanks to share your lights

On Thu, Jun 21, 2018 at 11:59 AM, Xavier Coulon <xcoulon at redhat.com> wrote:

> Hello Charles,
>
> I've tried it before and failed too, because minishift/Openshift uses an
> older version of Docker that does not support multi-stage builds:
>
> ````
> $ eval $(minishift docker-env)
> $ docker version
> Client:
>  Version:      18.03.1-ce
>  API version:  1.24 (downgraded from 1.37)
>  Go version:   go1.9.5
>  Git commit:   9ee9f40
>  Built:        Thu Apr 26 07:13:02 2018
>  OS/Arch:      darwin/amd64
>  Experimental: false
>  Orchestrator: swarm
>
> Server:
>  Engine:
>   Version:      *1.12.6*
>   API version:  1.24 (minimum version )
>   Go version:   go1.6.4
>   Git commit:   78d1802
>   Built:        Wed Jan 11 00:23:16 2017
>   OS/Arch:      linux/amd64
>   Experimental: false
> ````
>
> I have not tried it yet, but maybe https://github.com/
> projectatomic/buildah could help since it supports multi-stage builds
> since V1.0 (https://github.com/projectatomic/buildah/releases/tag/V1.0 /
> https://github.com/projectatomic/buildah/pull/495). So you may be able to
> build and push with Buildah without having to use the Docker daemon running
> on OpenShift (again, this is just assumptions, it needs to be verified)
>

As I use a MacBook, I don't think that I could use "buildah" as it requires
a Linux OS ...

>
> Also, I found this PR (https://github.com/openshift/imagebuilder/pull/59),
> so you may want to give a try to https://github.com/openshift/imagebuilder
> - although it's still apparently in beta for now.
>
> HTH.
>
>
>
>
> On Thu, Jun 21, 2018 at 11:31 AM, Charles Moulliard <cmoullia at redhat.com>
> wrote:
>
>> Hi
>>
>> Is there a trick to be able to do a multi stages build using docker 17.x
>> running in minishift [1] ?
>>
>> E.g. Dockerfile to be processed
>>
>> FROM golang:1.9.4 as builder
>> ..
>> # Build and test the API code
>> RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o
>> controller-manager ./cmd/controller-manager/main.go
>> RUN go test ./pkg/... ./cmd/...
>>
>> # Copy the controller-manager into a thin image
>> FROM ubuntu:latest
>> WORKDIR /root/
>> COPY --from=builder /go/src/github.com/cmoulliard/
>> my-controller/controller-manager .
>>
>> Docker reports this error :
>>
>> docker build . -f Dockerfile.controller -t gcr.io/kubeships/controller-ma
>> nager:v1
>> Sending build context to Docker daemon    246MB
>> Step 1/23 : FROM golang:1.9.4 as builder
>> Error parsing reference: "golang:1.9.4 as builder" is not a valid
>> repository/tag: invalid reference format
>>
>> [1] https://docs.docker.com/develop/develop-images/multistage-build/
>>
>> Regards
>>
>> Charles
>>
>> _______________________________________________
>> Container-tools mailing list
>> Container-tools at redhat.com
>> https://www.redhat.com/mailman/listinfo/container-tools
>>
>>
>
>
> --
> Best regards,
> /Xavier
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/container-tools/attachments/20180621/bd632604/attachment.htm>


More information about the Container-tools mailing list