Quick update: I was able to use docker hub's hooks to set the release
version of the docker images during build time as suggested by Vladimir.
In addition, I was also able to automate the publishing of the Avatica
HSQLDB image (CALCITE1948 [1]).
The trick to publishing the HSQLDB image is quite simple. Docker hub
provides a post_push hook that is executed when a dockerfile is pushed
to the registry. I simply use it to build the HSQLDB dockerfile and push
it to a separate HSQLDB docker repository after the vanilla avatica
image is built.
I was able to push to multiple different repositories using the
post_push hook, so it should come in handy if we need to publish other
flavors of the Avatica image in the future.
Note that due to docker hub's requirement of the Dockerfile location in
the automated build configuration, I had to move the dockerfile for the
HSQLDB image into the same folder as the vanilla avatica image,
otherwise nothing will build.
See my commit here:
https://github.com/F21/calcite-avatica/commit/c772c978df5d74e8b4faec85d3a03a0bea89887f
Docker hub repositories of the pushed test images are here:
- https://hub.docker.com/r/f21global/calcite-avatica-test/
- https://hub.docker.com/r/f21global/calcite-avatica-hypersql-test2/
- https://hub.docker.com/r/f21global/calcite-avatica-hypersql-test1/
If this solution is acceptable, I propose that we close CALCITE-1948 and
open a new issue encompassing the publication of the HSQLDB image and
publication of the avatica image using docker hub hooks. I will then
finalize the commit and we should be able to get it into 1.13.0-rc0,
which I plan to make available tomorrow. I will then ask infra to create
the apache/calcite-avatica-hsqldb repository on docker hub as a
non-automated build, so we should have a HSQLDB avatica image published
once 1.13.0 is release.
Francis
[1] https://issues.apache.org/jira/browse/CALCITE-1948
On 22/11/2018 5:41 am, Vladimir Sitnikov wrote:
I'm not sure what combination of plugins would be best to do this
Josh, you might have missed, yet there's an option to add DockerHub hook
files to the repository, and DockerHub will execute them at build.
Then no replacements would be required.
What do you think?
Vladimir