Thanks for your input Hoss and Martijn.

So I've taken a look at the Elastic docker images [1], and they are
structured much like official images, except for the use of multi-stage
builds. They have no ARGs, and the docker context is merely the directory
in which the Dockerfile sits. With this in mind, and wanting to still take
advantage of the Official Docker Image, we will likely need to do some sort
of templating, as Hoss suggested. This can be automated using gradle fairly
easily I would imagine, and we could ensure that the only changes it makes
is to the part of the image that downloads Solr. That way there is very
little room for differences to occur between local and release images.

I do think that the current PR can be merged, regardless of our intent for
the release build, because the current way of building isn't going to be
acceptable for an official docker image release. I have made a ticket to
determine a release process for Solr docker images (9.0+) [2], this way we
can continue on with other parts of the Solr docker improvements while
being able to work on that in parallel.

To respond to the point about different architectures or operating system
images, I agree with you Martijn. I think we should support one operating
system by default, which would hopefully work with multiple architectures.
Dockerhub seems to support this for official images [3]. However if users
would want different operating system images, we will have given them the
ability to specify a custom base image and the dockerfile instructions
should be clear enough to migrate to other operating systems. That way they
can easily build their own.

- Houston

[1] https://github.com/elastic/dockerfiles/tree/v7.10.1/elasticsearch
[2] https://issues.apache.org/jira/browse/SOLR-15102
[3] https://github.com/docker-library/official-images#multiple-architectures

On Wed, Jan 20, 2021 at 11:55 AM Chris Hostetter <hossman_luc...@fucit.org>
wrote:

>
> : I'd recommend building apache/solr:x.y.z as part of the normal solr
> : release, then import those images into the official images library so
>         ...
> : I don't know exactly what it takes for this to happen on the
> : official-image library side, but it seems that Elastisearch does this
>
> Oh wow ... ok, yeah: I had no idea that was allowed by docker-library
> based on the things I'd read about "official" docker images.  (per the
> links in the comments, the Dockerfile for the ES base image even uses
> multi-stage builds which would help seriously simplify the our 'official'
> image build process)
>
> Yeah, if this is something docker-library will allow us to do as well --
> define _/solr images directly 'FROM' apache/solr images -- and that
> those are/can be reproducibly built from a (multistage) Dockerfile in our
> git source repo identified by our release tag -- then by all means that
> seems like the best way to go.
>
> (I suspect the one finicky bit may be ensuring that docker-library is
> ok with us using '--build-arg' to set the version when building our base
> apache/solr images so that by building docker images from source checkout
> defaults to building a snapshot)
>
>
> -Hoss
> http://www.lucidworks.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>
>

Reply via email to